Repository navigation
Cancel superseded PR CI runs and add job timeouts - #203
Merged
Merged
Conversation
CI and Paper had no concurrency group, so each push to a pull request left the previous head's run going on runners the whole PolicyEngine org shares (60 concurrent jobs on the GitHub Team plan). A new push now cancels that pull request's older run. Pushes to main get a group of their own per run and are never cancelled. Every job gets timeout-minutes, sized from the last 12 successful runs (slowest: test 7.2 min, paper 2.0 min), so a hung job frees its runner instead of holding it for GitHub's 6-hour default. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
Author
|
Landing on the merge gates. Audit at head
|
This branch was successfully deployed
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.
What
CIandPaperget a workflow-levelconcurrencygroup. A new push to a pull request cancels that pull request's older run. Pushes tomainget a group of their own per run (github.run_id), so they are never cancelled or left pending behind one another.timeout-minutes, so a hung job frees its runner instead of holding it for GitHub's 6-hour default.Why
The PolicyEngine org is on the GitHub Team plan, which allows 60 concurrent jobs on standard GitHub-hosted runners (Actions limits). On 2026-10-08 at 23:18Z the org had 57 jobs in progress and 167 queued. This repo's workflows had no concurrency group, so a superseded run kept its slots: run 37852440356 was still running two jobs on a commit that PR #200 had already replaced.
Timeouts and the durations behind them
From the last 12 successful runs of each workflow (2026-10-05 to 10-08):
Checks
actionlintpasses on both files.main(branch is unprotected), and no job name changes.🤖 Generated with Claude Code