Repository navigation
ci: cancel superseded PR runs with a concurrency group - #32
Open
spacedevin wants to merge 1 commit into
Open
spacedevin wants to merge 1 commit into
spacedevin wants to merge 1 commit into
Conversation
Every push to a PR branch started a fresh CI run while the previous one kept going, and the verify matrix in that previous run (90 jobs, ~250 billed minutes) ran to completion for a commit nobody would read a verdict on. August 2026 billed ~23,000 Linux minutes, ~88% of it that matrix, across 59 PR runs. A concurrency group keyed on the PR number cancels the in-progress run when a new push arrives. Pushes to main are deliberately never cancelled: that run cuts the prerelease and is what chuggie.dev reads its ROM artifacts from. screenshot.yml gets the same block.
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.
Motivation
August 2026 billed ~23,000 Linux minutes on this repo. ~88% of that is the
verifymatrix (90 jobs, each billed rounded up to whole minutes, ~250 billed minutes per run). There were 59 PR runs and 44 main runs.ci.ymlhad noconcurrencyblock, so every push to a PR branch left the previous run grinding through the full matrix for a commit that had already been replaced.Change
Add a top-level
concurrencyblock toci.ymlandscreenshot.yml:mainare grouped by ref butcancel-in-progressis false for them: the main run cuts the prerelease and is the run chuggie.dev readsexample-roms-verify-<id>from via nightly.link, so a superseded main run still has to finish.Nothing else changes. Both files parse (
actionlint, rubyYAML.load_file); the one shellcheck note actionlint reports onci.yml(SC2155 in the gba-shot build step) is pre-existing on main.