ci(staging): remove canvas-deploy-reminder from all-required.needs (deadlock fix)
Some checks failed
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 18s
CI / Detect changes (pull_request) Successful in 36s
sop-checklist / na-declarations (pull_request) awaiting /sop-n/a declaration for: qa-review, security-review
CI / Shellcheck (E2E scripts) (pull_request) Successful in 19s
sop-checklist / all-items-acked (pull_request) ok
CI / Python Lint & Test (pull_request) Failing after 7m29s
CI / all-required (pull_request) Blocked by required conditions
CI / Platform (Go) (pull_request) Failing after 8m25s
CI / Canvas (Next.js) (pull_request) Failing after 13m31s
CI / Canvas Deploy Reminder (pull_request) Has been skipped

The mc#923 fix (PR #927) introduced a permanent CI hang on every
CI-only PR: canvas-deploy-reminder is in all-required.needs, but it
itself needs canvas-build which is skipped when canvas=false. The
all-required sentinel waits forever for a job that never runs on
CI-only PRs.

Fix: exclude canvas-deploy-reminder from all-required.needs on staging
(the same fix as PR #938 targeting main).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Molecule AI · core-devops 2026-05-14 03:25:46 +00:00
parent 6b7321635f
commit 8f4c252c94

View File

@ -535,13 +535,9 @@ jobs:
# hourly if this list diverges from status_check_contexts or from
# audit-force-merge.yml's REQUIRED_CHECKS env (RFC §4 + §6).
#
# mc#923 fix: canvas-deploy-reminder added to needs: above.
# The job's `if:` gate (push-to-main only) means it is legitimately
# skipped on PRs — the drift detector's F1 should exclude it (it uses
# ci_job_names() which skips github.event_name-gated jobs), but
# to be safe and consistent with main, include it in needs:. The
# all-required sentinel will see it as 'skipped' on PRs and handle
# that per its Phase-3 exclusion logic.
# canvas-deploy-reminder is intentionally excluded from all-required.needs:
# it needs canvas-build, which is skipped on CI-only PRs (canvas=false).
# Including it in all-required.needs causes all-required to hang on every CI-only PR.
#
# Phase 3 (RFC #219 §1) safety: underlying build jobs carry
# continue-on-error: true so their failures are masked to null (2026-05-12: re-enabled mc#774 interim)
@ -559,7 +555,7 @@ jobs:
- changes
- platform-build
- canvas-build
- canvas-deploy-reminder
# - canvas-deploy-reminder ← intentionally excluded — see deadlock rationale above
- shellcheck
- python-lint
if: always()