fetch_ml/scripts
Jeremie Fraeys 6d200b5ac2
fix(docker): Use named volume for Redis to fix permission errors
Replace bind mount with Docker named volume for Redis data

This fixes 'operation not permitted' errors on macOS Docker Desktop

where bind mounts fail due to file sharing restrictions
2026-02-23 14:20:23 -05:00
..
benchmarks refactor: reorganize scripts into categorized structure 2026-02-18 17:56:59 -05:00
ci chore(scripts): Update CI, dev, release, and testing scripts 2026-02-23 14:13:55 -05:00
dev chore(scripts): Update CI, dev, release, and testing scripts 2026-02-23 14:13:55 -05:00
lib chore(build): update build system, scripts, and additional tests 2026-02-12 12:05:55 -05:00
maintenance chore(build): update build system, scripts, and additional tests 2026-02-12 12:05:55 -05:00
release chore(scripts): Update CI, dev, release, and testing scripts 2026-02-23 14:13:55 -05:00
testing fix(docker): Use named volume for Redis to fix permission errors 2026-02-23 14:20:23 -05:00
README.md chore: move detect_native.go and setup_monitoring.py to dev/ 2026-02-18 17:57:57 -05:00

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 --native flag)

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