52 lines
1.6 KiB
Bash
52 lines
1.6 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
ROOT=$(cd "$(dirname "$0")/../.." && pwd)
|
|
COMPOSE_FILE="${COMPOSE_FILE:-$ROOT/devops/compose/docker-compose.stella-ops.yml}"
|
|
STATE_DIR="${STATE_DIR:-$ROOT/out/orchestrator-smoke}"
|
|
|
|
usage() {
|
|
cat <<'USAGE'
|
|
Orchestrator infra smoke test
|
|
- Starts postgres + valkey via docker-compose
|
|
- Verifies basic connectivity and prints ready endpoints
|
|
|
|
Env/flags:
|
|
COMPOSE_FILE path to compose file (default: devops/compose/docker-compose.stella-ops.yml)
|
|
STATE_DIR path for logs (default: out/orchestrator-smoke)
|
|
SKIP_UP set to 1 to skip compose up (assumes already running)
|
|
USAGE
|
|
}
|
|
|
|
if [[ ${1:-} == "-h" || ${1:-} == "--help" ]]; then usage; exit 0; fi
|
|
mkdir -p "$STATE_DIR"
|
|
|
|
if [[ "${SKIP_UP:-0}" != "1" ]]; then
|
|
docker compose -f "$COMPOSE_FILE" up -d stellaops-postgres stellaops-valkey
|
|
fi
|
|
|
|
log() { echo "[smoke] $*"; }
|
|
|
|
log "waiting for postgres..."
|
|
for i in {1..12}; do
|
|
if docker compose -f "$COMPOSE_FILE" exec -T stellaops-postgres pg_isready -U stellaops >/dev/null 2>&1; then break; fi
|
|
sleep 5;
|
|
done
|
|
|
|
log "waiting for valkey..."
|
|
for i in {1..12}; do
|
|
if docker compose -f "$COMPOSE_FILE" exec -T stellaops-valkey valkey-cli ping | grep -qi pong >/dev/null 2>&1; then break; fi
|
|
sleep 5;
|
|
done
|
|
|
|
log "postgres DSN: postgres://stellaops:stellaops@localhost:5432/stellaops"
|
|
log "valkey uri: valkey://localhost:6379"
|
|
|
|
# Write readiness summary
|
|
cat > "$STATE_DIR/readiness.txt" <<EOF
|
|
postgres=postgres://stellaops:stellaops@localhost:5432/stellaops
|
|
valkey=valkey://localhost:6379
|
|
ready_at=$(date -u +%Y-%m-%dT%H:%M:%SZ)
|
|
EOF
|
|
|
|
log "smoke completed; summary at $STATE_DIR/readiness.txt"
|