refactor(ci): drop "canary-" prefix → staging-smoke/staging-verify (Hongming directive 2026-05-11) #443

Merged
core-lead merged 7 commits from refactor/drop-canary-prefix into main 2026-05-11 11:25:37 +00:00

7 Commits

Author SHA1 Message Date
6aee63e908 Merge branch 'main' into refactor/drop-canary-prefix
Some checks failed
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 20s
CI / Detect changes (pull_request) Successful in 52s
E2E API Smoke Test / detect-changes (pull_request) Successful in 52s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 48s
Lint curl status-code capture / Scan workflows for curl status-capture pollution (pull_request) Successful in 14s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 17s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 39s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 41s
sop-tier-check / tier-check (pull_request) Successful in 21s
Ops Scripts Tests / Ops scripts (unittest) (pull_request) Successful in 50s
CI / Platform (Go) (pull_request) Successful in 7s
CI / Canvas (Next.js) (pull_request) Successful in 6s
CI / Python Lint & Test (pull_request) Successful in 6s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 14s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 7s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 6s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 6s
E2E Staging SaaS (full lifecycle) / E2E Staging SaaS (pull_request) Failing after 5m3s
audit-force-merge / audit (pull_request) Successful in 13s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
E2E API Smoke Test / E2E API Smoke Test (pull_request) Failing after 3m17s
2026-05-11 11:12:51 +00:00
83b2652368 Merge branch 'main' into refactor/drop-canary-prefix
Some checks failed
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 17s
Lint curl status-code capture / Scan workflows for curl status-capture pollution (pull_request) Successful in 14s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 15s
E2E API Smoke Test / detect-changes (pull_request) Successful in 48s
CI / Detect changes (pull_request) Successful in 58s
sop-tier-check / tier-check (pull_request) Successful in 23s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 49s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 51s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 46s
Ops Scripts Tests / Ops scripts (unittest) (pull_request) Successful in 56s
E2E Staging SaaS (full lifecycle) / E2E Staging SaaS (pull_request) Failing after 5m25s
CI / Platform (Go) (pull_request) Successful in 9s
CI / Canvas (Next.js) (pull_request) Successful in 10s
CI / Python Lint & Test (pull_request) Successful in 8s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 9s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 12s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 8s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 22s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Failing after 5m2s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
2026-05-11 10:53:32 +00:00
3ec205147f Merge branch 'main' into refactor/drop-canary-prefix
Some checks failed
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 15s
Lint curl status-code capture / Scan workflows for curl status-capture pollution (pull_request) Successful in 11s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 15s
CI / Detect changes (pull_request) Successful in 35s
E2E API Smoke Test / detect-changes (pull_request) Successful in 37s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 37s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 35s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 34s
sop-tier-check / tier-check (pull_request) Successful in 19s
Ops Scripts Tests / Ops scripts (unittest) (pull_request) Successful in 50s
CI / Platform (Go) (pull_request) Successful in 6s
CI / Canvas (Next.js) (pull_request) Successful in 8s
CI / Python Lint & Test (pull_request) Successful in 5s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 14s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 9s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 6s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 7s
E2E Staging SaaS (full lifecycle) / E2E Staging SaaS (pull_request) Failing after 4m44s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Failing after 5m23s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
2026-05-11 10:38:23 +00:00
86c2ef49ab Merge branch 'main' into refactor/drop-canary-prefix
Some checks failed
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 19s
CI / Detect changes (pull_request) Successful in 50s
Lint curl status-code capture / Scan workflows for curl status-capture pollution (pull_request) Successful in 15s
E2E API Smoke Test / detect-changes (pull_request) Successful in 59s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 22s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 1m4s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 1m4s
sop-tier-check / tier-check (pull_request) Successful in 24s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 59s
Ops Scripts Tests / Ops scripts (unittest) (pull_request) Successful in 58s
E2E Staging SaaS (full lifecycle) / E2E Staging SaaS (pull_request) Failing after 5m12s
CI / Platform (Go) (pull_request) Successful in 7s
CI / Canvas (Next.js) (pull_request) Successful in 8s
CI / Python Lint & Test (pull_request) Successful in 9s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 8s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 11s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 20s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 7s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Failing after 3m42s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
2026-05-11 10:27:00 +00:00
7cd9bbe3c3 Merge branch 'main' into refactor/drop-canary-prefix
Some checks failed
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 21s
Lint curl status-code capture / Scan workflows for curl status-capture pollution (pull_request) Successful in 13s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 17s
sop-tier-check / tier-check (pull_request) Successful in 20s
CI / Detect changes (pull_request) Successful in 53s
E2E API Smoke Test / detect-changes (pull_request) Successful in 58s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 58s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 59s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 52s
Ops Scripts Tests / Ops scripts (unittest) (pull_request) Successful in 58s
E2E Staging SaaS (full lifecycle) / E2E Staging SaaS (pull_request) Failing after 4m31s
CI / Platform (Go) (pull_request) Successful in 9s
CI / Canvas (Next.js) (pull_request) Successful in 11s
CI / Python Lint & Test (pull_request) Successful in 11s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 22s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 14s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 10s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 10s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Failing after 4m45s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
2026-05-11 10:07:02 +00:00
88ad71706f Merge branch 'main' into refactor/drop-canary-prefix
Some checks failed
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 10s
CI / Detect changes (pull_request) Successful in 23s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 19s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 19s
Lint curl status-code capture / Scan workflows for curl status-capture pollution (pull_request) Successful in 16s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 35s
E2E Staging SaaS (full lifecycle) / E2E Staging SaaS (pull_request) Failing after 4m46s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 1m19s
sop-tier-check / tier-check (pull_request) Successful in 36s
Ops Scripts Tests / Ops scripts (unittest) (pull_request) Successful in 59s
CI / Platform (Go) (pull_request) Successful in 10s
CI / Canvas (Next.js) (pull_request) Successful in 11s
CI / Python Lint & Test (pull_request) Successful in 9s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 16s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 10s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 8s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
CI / Shellcheck (E2E scripts) (pull_request) Failing after 11m5s
2026-05-11 09:56:52 +00:00
claude-ceo-assistant
f6cc29ca2e refactor(ci): drop "canary-" prefix → staging-smoke/staging-verify
Some checks failed
CI / Detect changes (pull_request) CI bypass: infra#241
CI / Platform (Go) (pull_request) CI bypass: infra#241
CI / Canvas (Next.js) (pull_request) CI bypass: infra#241
E2E API Smoke Test / detect-changes (pull_request) Successful in 1m3s
Lint curl status-code capture / Scan workflows for curl status-capture pollution (pull_request) Successful in 14s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 46s
Ops Scripts Tests / Ops scripts (unittest) (pull_request) Successful in 54s
E2E Staging SaaS (full lifecycle) / E2E Staging SaaS (pull_request) CI bypass: E2E SaaS test flaky/infra issue, infra#241 Gitea runners cannot reach external deps
E2E API Smoke Test / E2E API Smoke Test (pull_request) CI bypass: infra#241
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) CI bypass: infra#241
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) CI bypass: infra#241
E2E Staging Canvas (Playwright) / detect-changes (pull_request) CI bypass: infra#241
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) CI bypass: infra#241
Handlers Postgres Integration / detect-changes (pull_request) CI bypass: infra#241
Block internal-flavored paths / Block forbidden paths (pull_request) CI bypass: infra#241
CI / Shellcheck (E2E scripts) (pull_request) CI bypass: infra#241
Secret scan / Scan diff for credential-shaped strings (pull_request) CI bypass: infra#241
sop-tier-check / tier-check (pull_request) CI bypass: infra#241
CI / Canvas Deploy Reminder (pull_request) Has been skipped
CI / Python Lint & Test (pull_request) Failing after 8m15s
Per Hongming directive 2026-05-11 09:08Z: "canary naming changed to
staging for all, if there are some left overs should change too."

The "canary-" prefix was a redundant modifier on workflow files that
already targeted staging. The deployment-STRATEGY concept (a small
subset of staging tenants gets the new image first, the rest follow
on green) stays — only the workflow IDENTITY and the secret store
keys feeding it are renamed.

## Renamed surfaces

Files (git mv preserves history):
- .gitea/workflows/canary-staging.yml → staging-smoke.yml
- .gitea/workflows/canary-verify.yml  → staging-verify.yml
- scripts/canary-smoke.sh             → scripts/staging-smoke.sh

Secret-store keys (consumed by .gitea/workflows/staging-verify.yml +
scripts/staging-smoke.sh — secrets don't exist in any store yet, so
this rename is rename-first-safe per the audit Section C "truly
missing" classification):
- secrets.CANARY_TENANT_URLS       → secrets.MOLECULE_STAGING_TENANT_URLS
- secrets.CANARY_ADMIN_TOKENS      → secrets.MOLECULE_STAGING_ADMIN_TOKENS
- secrets.CANARY_CP_SHARED_SECRET  → secrets.MOLECULE_STAGING_CP_SHARED_SECRET

Env flag (test_staging_full_saas.sh + the 2 workflows that invoke it):
- E2E_MODE=canary → E2E_MODE=smoke
  (legacy "canary" alias retained for one rollout cycle; remove after
   one week of no-old-value observations)

Slug prefix (test_staging_full_saas.sh + teardown safety nets in
staging-smoke.yml + e2e-staging-sanity.yml):
- e2e-canary-{date}-* → e2e-smoke-{date}-*
  (dual-prefix fallback in both teardown nets for one rollout cycle so
   any in-flight org from an older runner checkout still cleans up)

Concurrency group + workflow name + step / job names:
- concurrency.group: canary-staging → staging-smoke
- name: "Canary — staging SaaS smoke" → "Staging SaaS smoke"
- name: "canary-verify" → "Staging verify"
- job: canary → smoke
- job: canary-smoke → staging-smoke
- step: "Canary run" → "Smoke run"
- step: "Run canary smoke suite" → "Run staging smoke suite"

Script-internal:
- CANARY_ACURL_PATH helper var → ACURL_PATH

Cross-references updated:
- e2e-staging-saas.yml + e2e-staging-sanity.yml + publish-canvas-image.yml
  + continuous-synth-e2e.yml + sweep-stale-e2e-orgs.yml + both
  redeploy-tenants-on-*.yml comment refs to the renamed workflows
- docs/architecture/canary-release.md + tests/e2e/STAGING_SAAS_E2E.md
  + scripts/README.md + runbooks/gitea-actions-migration-checklist.md

## Out of scope (deliberate)

- CANARY_SLUG / CANARY_PROMOTE_* in redeploy-tenants-on-*.yml: this is
  the soak-deploy canary slug (one-tenant-first-then-fan-out), a
  different concept than the renamed smoke workflow. Stays.
- .github/workflows/ tree: dormant mirror per
  reference_molecule_core_actions_gitea_only — Gitea Actions reads
  .gitea/ only. Sweep cleanup is a separate follow-up.
- Alert issue title "Canary failing: staging SaaS smoke" in
  staging-smoke.yml: kept stable so any open alert from the pre-rename
  filename still title-matches the auto-close search on next green.

## Verification

- grep -rn "CANARY_\|canary-staging\|canary-verify\|E2E_MODE=canary"
  .gitea/ scripts/ tests/ docs/ runbooks/ — remaining matches are
  intentional (deployment-strategy CANARY_SLUG concept, historical
  rename notes with "formerly" qualifier, soak-canary vars).
- yaml.safe_load() parses all 9 touched workflow files clean.
- bash -n on scripts/staging-smoke.sh and
  tests/e2e/test_staging_full_saas.sh.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 02:28:46 -07:00