Skip to content

ci: group non-PR workflow runs per commit so queued runs are not replaced - #395

Merged
kevincostner17 merged 1 commit into
mainfrom
ci/per-commit-concurrency
Sep 15, 2026
Merged

kevincostner17 merged 1 commit into
mainfrom
ci/per-commit-concurrency

Conversation

@kevincostner17

Copy link
Copy Markdown
Contributor

Summary

Workflow runs that aren't pull requests are now grouped per commit. When PRs merge back to back, every merged commit keeps its own CI, Benchmark, Performance regression and Notebook smoke result, and a newer queued run no longer replaces an older commit's queued run.

Why

#376 changed push, schedule and dispatch runs on main to a per-ref group with cancel-in-progress: false. That stops in-progress runs being cancelled, but a concurrency group still holds at most one pending run, and a newer queued run replaces it. In the merges on 2026-09-15:

Run Commit What happened
CI 34953545053 82dba99 (#378) cancelled while queued, 0 jobs started
Benchmark 34953544990 82dba99 cancelled while queued, 0 jobs started
CI 34953578009 ecb0c78 (#379) cancelled while queued, 0 jobs started
Notebook smoke 34953545096 82dba99 cancelled mid-run (notebooks.yml still had cancel-in-progress: true)

Change

concurrency:
  group: <name>-${{ github.event_name }}-${{ github.event_name == 'pull_request' && github.ref || github.sha }}
  cancel-in-progress: ${{ github.event_name == 'pull_request' }}

This is applied to ci.yml, benchmark.yml, perf-regression.yml and notebooks.yml.

  • Pull requests: same as before. The group is ...-pull_request-refs/pull/N/merge, so a new push cancels the superseded run.
  • Push, schedule and dispatch: grouped per commit, so runs for different commits never share a group.
  • Docs is unchanged. It deploys gh-pages, and there the newest deploy should replace an older one.

Checks

  • All four files parse, and each concurrency block resolves 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.

…aced

#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.
@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: efbd5309-e400-4035-aefb-800cfdf8f10e


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 b43598b into main Sep 15, 2026
21 checks passed
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