File size: 2,956 Bytes
6d528b3 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | #!/usr/bin/env bash
set -euo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
TMP_ENV="$(mktemp "${TMPDIR:-/tmp}/matchday-deploy-env.XXXXXX")"
trap 'rm -f "$TMP_ENV"' EXIT
cat >"$TMP_ENV" <<'ENV'
POSTGRES_PASSWORD=validation-only-password
MATCHDAY_BACKEND_SIGNING_SECRET=validation-only-signing-secret-with-32-bytes
DASHSCOPE_API_KEY=validation-only-qwen-key
MATCHDAY_PUBLIC_URL=https://example.invalid
MATCHDAY_PUBLIC_HOST=example.invalid
ENV
MATCHDAY_RELEASE=validation-commit docker compose --env-file "$TMP_ENV" \
-f "$ROOT/deploy/alibaba/docker-compose.yml" config --quiet
if ! rg -q '^ run-worker:' "$ROOT/deploy/alibaba/docker-compose.yml"; then
echo "Durable run-worker service is missing from the deployment manifest." >&2
exit 1
fi
if ! rg -q 'command: \["python", "-m", "matchday\.run_worker"\]' \
"$ROOT/deploy/alibaba/docker-compose.yml"; then
echo "Durable run-worker service does not invoke matchday.run_worker." >&2
exit 1
fi
for variable in \
MATCHDAY_QWEN_TIMEOUT_SECONDS \
MATCHDAY_SERPAPI_TIMEOUT_SECONDS \
MATCHDAY_SERPAPI_MAX_RESULTS \
MATCHDAY_TRAVEL_ACTION_CACHE_SECONDS \
MATCHDAY_WEB_BLOCKED_DOMAINS \
UNSPLASH_ACCESS_KEY \
MATCHDAY_CONTEXT_ENABLED \
MATCHDAY_CONTEXT_TIMEOUT_SECONDS \
MATCHDAY_NEARBY_MAX_RESULTS \
MATCHDAY_NEARBY_RADIUS_KM \
MATCHDAY_FIXTURE_REFRESH_ENABLED \
MATCHDAY_FIXTURE_REFRESH_INTERVAL_SECONDS \
MATCHDAY_FIXTURE_STALE_SECONDS \
MATCHDAY_FIXTURE_REFRESH_TIMEOUT_SECONDS \
MATCHDAY_FIXTURE_REFRESH_RETRY_SECONDS \
MATCHDAY_AGENT_MAX_STEPS \
MATCHDAY_RUN_STALL_SECONDS \
MATCHDAY_RUN_MAX_SECONDS \
MATCHDAY_RUN_LEASE_SECONDS \
MATCHDAY_RUN_MAX_ATTEMPTS \
MATCHDAY_RUN_MAX_MODEL_TURNS \
MATCHDAY_RUN_MAX_TOOL_CALLS \
MATCHDAY_RUN_MAX_COST_UNITS \
MATCHDAY_RUN_RETRY_BASE_SECONDS \
MATCHDAY_RUN_WORKER_POLL_SECONDS \
VIATOR_API_KEY \
MATCHDAY_VIATOR_ACCESS_TIER \
MATCHDAY_VIATOR_ENVIRONMENT \
MATCHDAY_VIATOR_TIMEOUT_SECONDS \
MATCHDAY_VIATOR_MAX_RETRIES \
MATCHDAY_VIATOR_LOCAL_RATE_LIMIT_PER_MINUTE \
OPENROUTESERVICE_API_KEY \
MATCHDAY_OPENROUTESERVICE_TIMEOUT_SECONDS \
MATCHDAY_OPENROUTESERVICE_MAX_RETRIES \
MATCHDAY_OPENROUTESERVICE_LOCAL_RATE_LIMIT_PER_DAY \
AMADEUS_API_KEY \
AMADEUS_API_SECRET \
MATCHDAY_AMADEUS_ENVIRONMENT \
MATCHDAY_AMADEUS_TIMEOUT_SECONDS \
MATCHDAY_AMADEUS_MAX_RETRIES \
MATCHDAY_AMADEUS_LOCAL_RATE_LIMIT_PER_MINUTE; do
matches="$(rg -c "^[[:space:]]+${variable}:" "$ROOT/deploy/alibaba/docker-compose.yml" || true)"
if [ "${matches:-0}" -lt 2 ]; then
echo "Runtime/provider variable is not forwarded to both API and run-worker: ${variable}" >&2
exit 1
fi
done
if rg -n 'CreateInstance|RunInstances|CreateServer|ModifyInstance|ResizeDisk' \
"$ROOT/deploy/alibaba"; then
echo "Billable Alibaba mutation command found in deployment automation." >&2
exit 1
fi
echo "Deployment manifest valid; no Alibaba resource-creation command found."
|