fix(deploy): port catalog generator + drift-check to Python (prod has no node)

The host-side generator ran 'node scripts/*.mjs' in deploy.sh, but the prod box
has python3 only (no node outside containers), so the site deploy failed at the
generation step. Reimplemented both in Python (byte-identical output, verified
via diff against the node version; matches scripts/sync_nav.py tooling).
This commit is contained in:
justin 2026-06-07 19:26:01 -05:00
parent 09e21a6c97
commit a732423f04
5 changed files with 164 additions and 127 deletions

View file

@ -35,11 +35,12 @@ python3 scripts/sync_nav.py
# (api/src/service-catalog.ts) is the authority (it is what checkout charges).
# The site build context is ./site only and cannot read ../api, so we generate
# site/src/lib/service-catalog.generated.ts here on the host before the docker
# build. This guarantees displayed prices == charged prices.
# build. This guarantees displayed prices == charged prices. (Python because the
# prod box has python3 but not node; matches scripts/sync_nav.py.)
echo ""
echo "=== Generating site service catalog from API source ==="
node scripts/gen-service-catalog.mjs
node scripts/check-service-catalog-drift.mjs
python3 scripts/gen-service-catalog.py
python3 scripts/check-service-catalog-drift.py
# Render the Alertmanager config from its template. Alertmanager does NOT expand
# ${ENV} placeholders in its YAML, so the raw template (with ${TELEGRAM_BOT_TOKEN}