Skip to content

ci(redeploy): fix stale canary_slug default 'hongmingwang' → 'hongming' - #2569

Merged
HongmingWang-Rabbit merged 1 commit into
stagingfrom
fix/redeploy-canary-default
May 3, 2026
Merged

ci(redeploy): fix stale canary_slug default 'hongmingwang' → 'hongming'#2569
HongmingWang-Rabbit merged 1 commit into
stagingfrom
fix/redeploy-canary-default

Conversation

@HongmingWang-Rabbit

Copy link
Copy Markdown
Contributor

Summary

The redeploy-tenants-on-main.yml workflow_dispatch input default and the workflow_run env fallback both pointed at hongmingwang, which doesn't match any current prod tenant (real slugs are hongming, chloe-dong, reno-stars). CP silently skipped the missing canary and put every tenant in batch-1 in parallel, defeating the canary-first soak gate.

Concrete example

Today's c0838d6 redeploy at 11:53Z (run 25278434388):

  • Body sent: {"target_tag":"staging-c0838d6","canary_slug":"hongmingwang","soak_seconds":60,"batch_size":3,"dry_run":false}
  • CP response: all 3 prod tenants reported "phase":"batch-1" — no canary phase, no soak.

The deploy happened to be safe (canvas warm-paper React Flow colorMode fix). But a broken image would have hit hongming + chloe-dong + reno-stars simultaneously instead of failing on hongming alone after a 60s soak.

Changes

Three sites in .github/workflows/redeploy-tenants-on-main.yml:

  • Runtime-ordering comment (line 20)
  • workflow_dispatch.inputs.canary_slug.default (line 59)
  • env.CANARY_SLUG fallback used by the workflow_run trigger (line 151)

Added an inline comment documenting the rationale so the next slug rename doesn't silently regress this again.

Test plan

  • YAML lint passes
  • Next prod redeploy (staging→main code change) — verify CP response shows "phase":"canary" for hongming, then "batch-1" for chloe-dong + reno-stars after the 60s soak

The workflow_dispatch input default and the workflow_run env fallback
both pointed at 'hongmingwang', which doesn't match any current prod
tenant (slugs are: hongming, chloe-dong, reno-stars). CP silently
skipped the missing canary and put every tenant in batch-1 in parallel,
defeating the canary-first soak gate that exists to catch image-boot
regressions before they hit the whole fleet.

Concrete example from today's c0838d6 redeploy at 11:53Z (run 25278434388):
the dispatched body was `{"target_tag":"staging-c0838d6","canary_slug":"hongmingwang",...}`
and the CP response showed all 3 tenants in `"phase":"batch-1"` — no
soak, no canary. The deploy happened to be safe, but a broken image
would have hit hongming + chloe-dong + reno-stars simultaneously.

Fixed in three places: the runtime ordering comment, the
workflow_dispatch default, and the env fallback used by the
workflow_run trigger. Comment documents the rationale so the next
slug rename doesn't silently regress this again.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@HongmingWang-Rabbit
HongmingWang-Rabbit added this pull request to the merge queue May 3, 2026
Merged via the queue into staging with commit c71f641 May 3, 2026
21 checks passed
@HongmingWang-Rabbit
HongmingWang-Rabbit deleted the fix/redeploy-canary-default branch May 3, 2026 12:12
HongmingWang-Rabbit pushed a commit that referenced this pull request Jun 12, 2026
chore(ci): remove dead arm64-darwin self-hosted lanes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant