molecule-core/.github/workflows
Hongming Wang 998e13c4bd feat(deploy): verify each tenant /buildinfo matches published SHA after redeploy
Closes the gap that let issue #2395 ship: redeploy-fleet workflows reported
ssm_status=Success based on SSM RPC return code alone, while EC2 tenants
silently kept serving the previous :latest digest because docker compose up
without an explicit pull is a no-op when the local tag already exists.

Wire:
  - new buildinfo package exposes GitSHA, set at link time via -ldflags from
    the GIT_SHA build-arg (default "dev" so test runs without ldflags fail
    closed against an unset deploy)
  - router exposes GET /buildinfo returning {git_sha} — public, no auth,
    cheap enough to curl from CI for every tenant
  - both Dockerfiles thread GIT_SHA into the Go build
  - publish-workspace-server-image.yml passes GIT_SHA=github.sha for both
    images
  - redeploy-tenants-on-main.yml + redeploy-tenants-on-staging.yml curl each
    tenant's /buildinfo after the redeploy SSM RPC and fail the workflow on
    digest mismatch; staging treats both :latest and :staging-latest as
    moving tags; verification is skipped only when an operator pinned a
    specific tag via workflow_dispatch

Tests:
  - TestGitSHA_DefaultDevSentinel pins the dev default
  - TestBuildInfoEndpoint_ReturnsGitSHA pins the wire shape that the
    workflow's jq lookup depends on

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 10:55:08 -07:00
..
auto-promote-on-e2e.yml
auto-promote-staging.yml
auto-sync-main-to-staging.yml
auto-tag-runtime.yml
block-internal-paths.yml
canary-staging.yml
canary-verify.yml
check-merge-group-trigger.yml
check-migration-collisions.yml
ci.yml
codeql.yml
continuous-synth-e2e.yml
e2e-api.yml
e2e-staging-canvas.yml
e2e-staging-saas.yml
e2e-staging-sanity.yml
pr-guards.yml
promote-latest.yml
publish-canvas-image.yml
publish-runtime.yml
publish-workspace-server-image.yml feat(deploy): verify each tenant /buildinfo matches published SHA after redeploy 2026-04-30 10:55:08 -07:00
railway-pin-audit.yml
redeploy-tenants-on-main.yml feat(deploy): verify each tenant /buildinfo matches published SHA after redeploy 2026-04-30 10:55:08 -07:00
redeploy-tenants-on-staging.yml feat(deploy): verify each tenant /buildinfo matches published SHA after redeploy 2026-04-30 10:55:08 -07:00
retarget-main-to-staging.yml
runtime-pin-compat.yml
runtime-prbuild-compat.yml
secret-pattern-drift.yml
secret-scan.yml
sweep-cf-orphans.yml
sweep-cf-tunnels.yml
sweep-stale-e2e-orgs.yml
test-ops-scripts.yml