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."