#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" PROJECT_DIR="$(dirname "$SCRIPT_DIR")" cd "$PROJECT_DIR" echo "=== ts-anomaly-td E2E ===" echo "" echo "[1/5] Starting TDengine container..." docker compose up -d echo "[2/5] Waiting for TDengine to be healthy..." for i in $(seq 1 60); do if curl -sf http://localhost:6041/rest/sql -d 'select server_version()' > /dev/null 2>&1; then echo "TDengine ready (attempt $i)" break fi sleep 2 done mkdir -p render logs echo "[3/5] Running E2E pipeline..." uv run python -m ts_anomaly_td e2e --data-dir data --output-dir render --log-dir logs echo "[4/5] Checking results..." for png in render/*.png; do if [ -f "$png" ]; then sz=$(stat -c%s "$png" 2>/dev/null || stat -f%z "$png" 2>/dev/null || echo 0) echo " $png: ${sz} bytes" if [ "$sz" -lt 51200 ]; then echo " WARNING: PNG too small (< 50KB)" fi fi done for log in logs/e2e_*.json; do if [ -f "$log" ]; then echo " $log: $(wc -c < "$log") bytes" fi done echo "[5/5] Done." echo "" echo "To clean up: docker compose down" echo "To keep containers for debug: leave them running"