Skip to content

ci: never cancel in-progress runs on main - #376

Merged
kevincostner17 merged 1 commit into
mainfrom
ci/no-cancel-on-main
Sep 15, 2026
Merged

kevincostner17 merged 1 commit into
mainfrom
ci/no-cancel-on-main

Conversation

@kevincostner17

Copy link
Copy Markdown
Contributor

Summary

Runs of CI, Benchmark and Performance regression on main are 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 }} with cancel-in-progress: true, so every run on main shared one group whatever triggered it. The nightly CI started late (08:32Z on 2026-09-15, cron 0 3 * * *) and cancelled the push run for #350. Commit 28072bf then showed "8 cancelled" checks (test-matrix 3.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.yml and perf-regression.yml:

concurrency:
  group: <name>-${{ github.event_name }}-${{ github.ref }}
  cancel-in-progress: ${{ github.event_name == 'pull_request' }}
  • Pull requests: behaviour is unchanged. A new push to a PR cancels its previous run.
  • Pushes, schedules and dispatches on main: each goes into its own group and is never cancelled. Runs of the same event type queue instead of killing each other.

Checks

  • All three files parse with PyYAML, and their concurrency blocks resolve as shown above.
  • tests/performance/test_contracts.py, tests/test_phase5_backcompat.py and tests/test_wheel_artifact_policy.py pass on Python 3.9 and 3.12 (23 tests). No test asserts on the concurrency text.
  • I also re-ran the cancelled push run on 28072bf (run 34947090600).

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.
@coderabbitai

coderabbitai Bot commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 9cd4cbdf-f401-471f-9c76-544668584900


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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown

FreshData benchmark report — performance

  • freshdata: ?
  • python: ?
  • platform: ?
fixture n_rows n_cols p50 s p95 s peak MB repair % false-repair % preserve % trust monotonic export %

Authored-code reduction (Metric 6)

@kevincostner17
kevincostner17 merged commit 7d6e461 into main Sep 15, 2026
20 checks passed
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant