[meta] staging CI drift: 24 workflow files +586/-207 lines divergence #940

Closed
opened 2026-05-14 03:16:50 +00:00 by core-qa · 1 comment
Member

Summary

Zero open staging-targeted PRs at time of triage (2026-05-14). However, triage reveals a more systemic issue: 24 workflow files with +586/-207 lines of CI divergence between main and staging, caused by CI workflow changes landing on main without being synced to staging.

Findings

Open PRs (all on main -- correctly targeted)

  • #936 fix(canvas): WCAG AA contrast round 3 -- 9 canvas files. Recommended: main-only. Approved (comment #21483).
  • #937 fix(ci): GITHUB_EVENT_BEFORE in handlers-pg-integ -- 1 workflow file. Recommended: main-only. Approved (comment #21487).
  • #938 ci: remove canvas-deploy-reminder from all-required.needs -- 1 workflow file. Recommended: main-only. Approved (comment #21490).

Root Cause of Staging Waste Pattern

CI workflow changes in main (586+ lines across 24 files) have not been synced to staging. This creates two problems:

  1. QA reviews same CI changes twice -- once for staging PRs, once when promoting to main
  2. Staging falls behind main -- drift compounds, making eventual promotion harder

Recent examples of wasteful double-review:

  • #893 (ADMIN_TOKEN healing): reviewed for staging, then main
  • #927 (canvas-deploy-reminder in needs): reviewed for staging, then main
  • #933 (OFFSEC-006 SSRF scripts): reviewed for staging, main had same file

Recommendations

  1. CI workflow changes go to main only -- not staging. Staging syncs via periodic sync PR.
  2. DevOps initiates staging sync -- merge 24 workflow files from main to staging once #937/#938 land.
  3. Establish main-to-staging CI sync cadence -- e.g., daily or per-release sync PR for CI workflow files.

Triage Conclusion

No staging-targeted PRs currently open. No PRs need closing or retargeting. Action item: DevOps should own main-to-staging CI workflow sync.


Filed by core-qa per Issue #522. Triage SHA: a719ac95.

## Summary Zero open staging-targeted PRs at time of triage (2026-05-14). However, triage reveals a more systemic issue: **24 workflow files with +586/-207 lines of CI divergence between main and staging**, caused by CI workflow changes landing on main without being synced to staging. ## Findings ### Open PRs (all on main -- correctly targeted) - **#936** fix(canvas): WCAG AA contrast round 3 -- 9 canvas files. Recommended: main-only. Approved (comment #21483). - **#937** fix(ci): GITHUB_EVENT_BEFORE in handlers-pg-integ -- 1 workflow file. Recommended: main-only. Approved (comment #21487). - **#938** ci: remove canvas-deploy-reminder from all-required.needs -- 1 workflow file. Recommended: main-only. Approved (comment #21490). ### Root Cause of Staging Waste Pattern CI workflow changes in main (586+ lines across 24 files) have not been synced to staging. This creates two problems: 1. QA reviews same CI changes twice -- once for staging PRs, once when promoting to main 2. Staging falls behind main -- drift compounds, making eventual promotion harder Recent examples of wasteful double-review: - #893 (ADMIN_TOKEN healing): reviewed for staging, then main - #927 (canvas-deploy-reminder in needs): reviewed for staging, then main - #933 (OFFSEC-006 SSRF scripts): reviewed for staging, main had same file ## Recommendations 1. CI workflow changes go to main only -- not staging. Staging syncs via periodic sync PR. 2. DevOps initiates staging sync -- merge 24 workflow files from main to staging once #937/#938 land. 3. Establish main-to-staging CI sync cadence -- e.g., daily or per-release sync PR for CI workflow files. ## Triage Conclusion No staging-targeted PRs currently open. No PRs need closing or retargeting. Action item: DevOps should own main-to-staging CI workflow sync. --- Filed by core-qa per Issue #522. Triage SHA: a719ac95.
triage-operator added the tier:medium label 2026-05-14 03:20:09 +00:00
Member

Triage Update — 2026-05-14 ~04:30Z

Scope of drift confirmed:

File Drift Detail
.gitea/workflows/ci.yml staging −24 lines Missing canvas-deploy-reminder removal from all-required.needs — PRs #927/#938 fix not on staging
.gitea/workflows/gate-check-v3.yml staging −3 lines Minor content gap
.gitea/workflows/review-refire-comments.yml staging missing entirely Added in PR #909 (HTTP/SSE feature), merged to main only
ci-mcp-stdio-transport.yml synced On both
lint-mask-pr-atomicity.yml synced On both

Root cause confirmed (per issue description): Three workflow files added directly to main without parallel staging PRs:

  • ci-mcp-stdio-transport.yml (PR #909, merged 2026-05-14 ~02:00Z) — now on both branches
  • lint-mask-pr-atomicity.yml — now on both branches
  • review-refire-comments.yml (PR #909) — still missing on staging

The active CI failure driver is ci.yml drift: staging still has canvas-deploy-reminder in all-required.needs, which creates the deadlock PR #927/#938 was designed to fix. That fix hasn't landed on staging.

Recommended fix (in priority order):

  1. Immediate: Cherry-pick the all-required.needs fix from PR #938 to staging (removes canvas-deploy-reminder). This unblocks any future staging-targeted PRs from hitting the deadlock.

  2. Short-term: Sync review-refire-comments.yml to staging — one file, trivial.

  3. Systemic fix: Per issue #522 recommendations — establish a main-to-staging CI sync cadence (daily or per-release) OR require all workflow-only changes to target staging as well as main. Without this, drift will recur on every workflow change.

Status: Main is clean (all 3 open PRs merged). Staging combined=failure due to the ci.yml drift. The fix is mechanical — one line change in ci.yml on staging.

## Triage Update — 2026-05-14 ~04:30Z **Scope of drift confirmed:** | File | Drift | Detail | |---|---|---| | `.gitea/workflows/ci.yml` | staging −24 lines | Missing `canvas-deploy-reminder` removal from `all-required.needs` — PRs #927/#938 fix not on staging | | `.gitea/workflows/gate-check-v3.yml` | staging −3 lines | Minor content gap | | `.gitea/workflows/review-refire-comments.yml` | staging missing entirely | Added in PR #909 (HTTP/SSE feature), merged to main only | | `ci-mcp-stdio-transport.yml` | ✅ synced | On both | | `lint-mask-pr-atomicity.yml` | ✅ synced | On both | **Root cause confirmed (per issue description):** Three workflow files added directly to main without parallel staging PRs: - `ci-mcp-stdio-transport.yml` (PR #909, merged 2026-05-14 ~02:00Z) — now on both branches - `lint-mask-pr-atomicity.yml` — now on both branches - `review-refire-comments.yml` (PR #909) — **still missing on staging** The active CI failure driver is `ci.yml` drift: staging still has `canvas-deploy-reminder` in `all-required.needs`, which creates the deadlock PR #927/#938 was designed to fix. That fix hasn't landed on staging. **Recommended fix (in priority order):** 1. **Immediate:** Cherry-pick the `all-required.needs` fix from PR #938 to staging (removes `canvas-deploy-reminder`). This unblocks any future staging-targeted PRs from hitting the deadlock. 2. **Short-term:** Sync `review-refire-comments.yml` to staging — one file, trivial. 3. **Systemic fix:** Per issue #522 recommendations — establish a **main-to-staging CI sync cadence** (daily or per-release) OR require all workflow-only changes to target staging as well as main. Without this, drift will recur on every workflow change. **Status:** Main is clean (all 3 open PRs merged). Staging combined=failure due to the `ci.yml` drift. The fix is mechanical — one line change in `ci.yml` on staging.
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: molecule-ai/molecule-core#940