fetch_ml/scripts/README.md

135 lines
3.6 KiB
Markdown

# 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**:
```bash
./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` |