ci: never cancel in-progress runs on main - #376
Merged
Merged
Conversation
CI, Benchmark and Performance regression used one concurrency group per ref with cancel-in-progress. On main, a later push, the scheduled run or a manual dispatch therefore cancelled the run already in progress. The nightly CI started at 08:32Z on 2026-09-15 and cancelled the push run for #350, which left 8 cancelled checks on 28072bf even though the same commit passed in full. Merging several PRs back to back would cancel the CI of every merge except the last. Group runs by event as well as ref, and cancel only when a newer push supersedes a pull_request run.
Contributor
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
FreshData benchmark report —
|
| fixture | n_rows | n_cols | p50 s | p95 s | peak MB | repair % | false-repair % | preserve % | trust | monotonic | export % |
|---|
Authored-code reduction (Metric 6)
This was referenced Sep 15, 2026
kevincostner17
added a commit
that referenced
this pull request
Sep 15, 2026
…aced (#395) #376 made push, schedule and dispatch runs on main use a per-ref group without cancel-in-progress. That stopped in-progress cancellation, but a concurrency group still holds at most one pending run and a newer queued run replaces it. During back-to-back merges on 2026-09-15 the CI and Benchmark push runs for 82dba99 and ecb0c78 were cancelled before any job started. Notebook smoke still used cancel-in-progress: true and was cancelled mid-run. Group pull_request runs by ref as before, so a new PR push still cancels its superseded run, and group every other run by commit SHA so each merged commit keeps its own complete result. Apply the same to CI, Benchmark, Performance regression and Notebook smoke. Docs is left as is: it deploys gh-pages, where the newest deploy should win.
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.
Summary
Runs of CI, Benchmark and Performance regression on
mainare no longer cancelled. A newer push to a pull request still cancels that PR's superseded run.Why
All three workflows used
group: <name>-${{ github.ref }}withcancel-in-progress: true, so every run onmainshared one group whatever triggered it. The nightly CI started late (08:32Z on 2026-09-15, cron0 3 * * *) and cancelled the push run for #350. Commit 28072bf then showed "8 cancelled" checks (test-matrix3.9–3.13,quality-fast,build,coverage-badge), even though the scheduled run on the same commit passed every job.The same thing happens when PRs are merged back to back. Each merge cancels the previous merge's CI, so only the last commit gets a result.
Change
In
ci.yml,benchmark.ymlandperf-regression.yml:main: each goes into its own group and is never cancelled. Runs of the same event type queue instead of killing each other.Checks
concurrencyblocks resolve as shown above.tests/performance/test_contracts.py,tests/test_phase5_backcompat.pyandtests/test_wheel_artifact_policy.pypass on Python 3.9 and 3.12 (23 tests). No test asserts on the concurrency text.