Repository navigation
ci: cancel superseded PR runs and give every job a timeout - #247
Merged
Nic-dorman merged 2 commits intoNov 5, 2026
Merged
Nic-dorman merged 2 commits into
Nic-dorman merged 2 commits into
Conversation
- A workflow-level concurrency group per PR, with cancel-in-progress. A new push now cancels the run still going for the commit it replaces, instead of running both to the end. feat/peer-swarm ran 11 times, about 3,500 job-minutes; runs 41047797289 and 41047829080 started 15 s apart on the same PR. - timeout-minutes on the 10 jobs that had none, each above the slowest successful run in the last 50: E2E 110 (max 87.6), unit tests and build 40 (24.9, 24.7), browser WASM 30 (10.0), clippy, notices, doc and audit 20 (4.3), fmt and release scripts 10 (0.4). E2E could previously hold a runner for GitHub's 6 h default. - The browser-integration (25) and Merkle E2E (90) timeouts are unchanged. The Merkle comment no longer says E2E has no cap. pr-checks.yml, adr-governance.yml and the release workflows are not touched. Closes V2-1867 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…y-cancel-in-progress-timeout Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaidSafe-Hermes
approved these changes
Nov 5, 2026
MaidSafe-Hermes
left a comment
Contributor
There was a problem hiding this comment.
APPROVE — reviewed at head 84a067e. The change is limited to .github/workflows/ci.yml. The PR-number concurrency group scopes cancellation to runs for the same PR, and all 12 CI jobs have explicit timeouts; the three matrix job timeouts apply per matrix leg. The other workflow files define no concurrency groups that collide with this key. No actionable code defect found. Both review seats agree (two model families): 2/2 seats reviewed (sol-1 gpt-6.1-sol xhigh; glm-1 z-ai/glm-5.3). Caveat: 18/19 checks pass; Security Audit fails on the inherited crypto-bigint 0.5.5 / RUSTSEC-2026-0387 finding, and Cargo.lock is unchanged from base. This approval is code-scoped; the security audit remains a merge gate.
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This is the first, small step of V2-1851 (CI cost), split out the way ant-node did it in #268 (V2-1822). The job consolidation comes later, after #244 lands, since that PR also changes ci.yml.
concurrency, one group per PR, withcancel-in-progress. A new push now cancels the run still going for the commit it replaces, instead of running both to the end. Runs that run to the end anyway cost a lot: a run is about 318 job-minutes, feat/peer-swarm ran 11 times (about 3,500 job-minutes), and runs 41047797289 and 41047829080 started 15 s apart on the same PR.timeout-minuteson the 10 jobs that had none. Each is set above the slowest successful run in the last 50:Until now a hung E2E test could hold a macOS runner for GitHub's 6-hour default.
Not touched:
pr-checks.yml(kept verbatim across repos),adr-governance.yml, and the release workflows, which must never cancel a release.Linear issue
Closes V2-1867
Risk tier
Compatibility
ci.ymlonly.Semver impact
Test evidence
actionlintis clean, as it is on main. YAML parse: 12 jobs, every one hastimeout-minutes, and the workflow has aconcurrencygroup.New dependency
none
ADR
n/a
Mitigation / rollback
Revert. If a job outgrows its timeout, raise that one number.
🤖 Generated with Claude Code