Use /tmp for smoke test data to avoid file sharing issues on macOS/Colima: - smoke-test.sh: Create temp dir with mktemp, export SMOKE_TEST_DATA_DIR - docker-compose.dev.yml: Use SMOKE_TEST_DATA_DIR with fallback to data/dev - Remove file sharing permission checks (no longer needed with tmp) This avoids Docker Desktop/Colima file sharing permission issues entirely by using a system temp directory that's always accessible. |
||
|---|---|---|
| .. | ||
| benchmarks | ||
| ci | ||
| dev | ||
| lib | ||
| maintenance | ||
| release | ||
| testing | ||
| README.md | ||
Scripts Directory
Organized utility scripts for FetchML development, testing, and release management.
Development Scripts (dev/)
smoke-test.sh
Purpose: End-to-end smoke testing for dev/prod environments
Usage: ./scripts/dev/smoke-test.sh [dev|prod] [--native]
Tests full stack health by starting docker-compose services and verifying:
- API health endpoints
- Prometheus metrics ingestion (dev mode)
- Native library integration (with
--nativeflag)
Examples:
./scripts/dev/smoke-test.sh dev # Standard smoke test
./scripts/dev/smoke-test.sh prod --native # Prod with native libs
manage-artifacts.sh
Purpose: Local benchmark artifact management
Usage: ./scripts/dev/manage-artifacts.sh [list|clean|compare|export]
Manages benchmark run artifacts in .local-artifacts/.
detect-native.go
Purpose: Native library detection utility
Usage: go run ./scripts/dev/detect-native.go
Detects native C++ libraries and CGO configuration. Shows which native libs are available.
setup-monitoring.py
Purpose: Development monitoring setup
Usage: python3 ./scripts/dev/setup-monitoring.py
Creates Grafana provisioning structure for local development.
CI Scripts (ci/)
checks.sh
Purpose: Maintainability enforcement
Usage: ./scripts/ci/checks.sh or make ci-checks
test.sh
Purpose: CI test runner
Usage: ./scripts/ci/test.sh
verify-paths.sh
Purpose: Path convention verification
Usage: ./scripts/ci/verify-paths.sh
Release Scripts (release/)
cleanup.sh
Purpose: Unified cleanup utility
Usage: ./scripts/release/cleanup.sh [all|docker|podman|logs|secrets|state|testdata]
prepare.sh
Purpose: Release preparation
Usage: ./scripts/release/prepare.sh
sanitize.sh
Purpose: Config sanitization
Usage: ./scripts/release/sanitize.sh
verify.sh
Purpose: Pre-release verification
Usage: ./scripts/release/verify.sh or make release-check
Testing Scripts (testing/)
gen-ssh-test-keys.sh
Purpose: Generate SSH keys for TUI testing
Usage: ./scripts/testing/gen-ssh-test-keys.sh
tui-ssh-test.sh
Purpose: Manual TUI SSH testing
Usage: ./scripts/testing/tui-ssh-test.sh
test-prod.sh
Purpose: Production validation
Usage: ./scripts/testing/test-prod.sh
Benchmark Scripts (benchmarks/)
run-benchmarks-local.sh
Purpose: Local benchmark execution
Usage: ./scripts/benchmarks/run-benchmarks-local.sh
Maintenance Scripts (maintenance/)
cleanup.sh
Purpose: Archive cleanup
Usage: ./scripts/maintenance/cleanup.sh [all|dry-run]
cleanup-benchmarks.sh
Purpose: Benchmark lifecycle management
Usage: ./scripts/maintenance/cleanup-benchmarks.sh [benchmarks|all|aggressive|status]
Shared Library (lib/)
common.sh
Purpose: Common shell functions
Usage: source "$(dirname "$0")/lib/common.sh"
Legacy Consolidation
| Old Script | New Location |
|---|---|
ci-checks.sh |
ci/checks.sh |
ci-test.sh |
ci/test.sh |
smoke-test.sh |
dev/smoke-test.sh |
smoke-test-native.sh |
merged into dev/smoke-test.sh --native |
manage-artifacts.sh |
dev/manage-artifacts.sh |
verify-paths.sh |
ci/verify-paths.sh |
release/verify-release.sh |
release/verify.sh |
release/prepare-release.sh |
release/prepare.sh |
release/sanitize-configs.sh |
release/sanitize.sh |
release/cleanup-*.sh (6 files) |
release/cleanup.sh |