This repository was archived by the owner on Nov 8, 2026. It is now read-only.
Repository navigation
fix(deploy): skip the staging acceptance verdict on cancelled jobs - #3507
Closed
polylane[bot] wants to merge 1 commit into
Closed
polylane[bot] wants to merge 1 commit into
polylane[bot] wants to merge 1 commit into
Conversation
Co-authored-by: polylane[bot] <277585245+polylane[bot]@users.noreply.github.com>
Contributor
|
Closing: Switchboard is being decommissioned and the repository archived (coreplanelabs/infrastructure#268). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The staging acceptance check reported a failed verdict on release pull-request runs that a concurrency cancellation had already stopped, so each stopped run carried a red check although no staging stack was deployed. The check now reports a verdict only for a run that no cancellation touched, so a stopped run stays unreported.
Detection evidence
Affected:
int_14cf586860018m832vjyg5diWhy this fix
The merged guard from #3442 requires that acceptance is reported only for a run that could have deployed and accepted, and nine of 28 failed verdict jobs in the October window sit on runs GitHub records as cancelled. In those runs the validate job was cancelled by its own concurrency group one second after its step finished, the deploy job resolved skipped, and
cancelled()still returned false because it reports only a run-level cancellation. Reading the dependency results in the job condition leaves every ineligible refusal and genuine failure red, and the required release status still refuses while no successful acceptance exists.Fix walkthrough
Watch the fix explained (1:28). Recorded for commit
3959c65e8c8bfd3ce0bc5727ba77d129838c0faa.Out of scope
validaterefusals and two authorize failures keep their red verdict: the merged guard declares an ineligible refusal fail-closed, so I left that path alone.Production impact: CI-only verdict gate change: the staging Workers keep their traffic
The changed path is a workflow condition that gates only the
staging / live Reviewverdict job; it changes no Worker code, no deployment input and no deploy job condition.I checked the six staging Workers that this workflow deploys in coreplane-infra Production over the 48 hours to 2026-11-02T15:00Z: 1,361,136 logged events with 405 at error level (switchboard 253,634 events, switchboard-memory 934,674, switchboard-sandbox 133,042, switchboard-resident 39,786). None of them reads this job, and the deploy job's condition is untouched, so no production path changes on merge.
The required
staging / Review E2Estatus is published from the deploy job's steps by the status workflow, which refuses it when the deploy job is skipped, so the merge gate keeps its current behaviour.Checked and not affected (6)
switchboardswitchboard-memoryswitchboard-sandboxswitchboard-residentswitchboard-docsswitchboard-controlled-acceptance-sourceObservability
staging / live Reviewjob conclusion shows whether the verdict is reported; it is the signal that changes.Staging E2E is automatic for release PRs only…,Full-stack staging deployment and live Review passed.) and its::error::annotation show why a verdict was or was not reported.staging / Review E2Estatus description stays the release gate signal; no new log or metric is added.Polylane assessed this pull request at
3959c65.Causal chain
3 files changed (+26/-12)
.github/workflows/deploy-staging.yml: modified, +3/-1docs/reference/specs/release-and-deploy.md: modified, +1/-1src/deploy/staging.test.ts: modified, +22/-10Generated by Polylane. You can ask follow-ups by mentioning @polylane in a comment.