ci(PLT-761): cancel superseded integration-test runs and defer Autobahn matrix to merge queue#3639
ci(PLT-761): cancel superseded integration-test runs and defer Autobahn matrix to merge queue#3639amir-deris wants to merge 4 commits into
Conversation
PR SummaryLow Risk Overview A concurrency block with The inline integration test matrix is moved to On PRs, roughly 11 fewer matrix jobs run; Autobahn smoke still comes from the unchanged Autobahn Basic job. Push and merge queue still run the full matrix. Reviewed by Cursor Bugbot for commit 94bb97e. Bugbot is set up for automated code reviews on this repo. Configure here. |
|
The latest Buf updates on your PR. Results from workflow Buf / buf (pull_request).
|
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 1e72025. Configure here.
|
|
||
| concurrency: | ||
| group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event_name == 'push' && github.sha || github.ref }} | ||
| cancel-in-progress: true |
There was a problem hiding this comment.
Merge queue runs cancel each other
High Severity
The new workflow concurrency group uses github.ref for non-push events, so every merge_group run on the same target branch shares one group while cancel-in-progress is true. Overlapping merge-queue checks can cancel each other’s long integration runs, leaving required checks failed or cancelled and blocking merges.
Reviewed by Cursor Bugbot for commit 1e72025. Configure here.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3639 +/- ##
==========================================
- Coverage 59.12% 58.15% -0.97%
==========================================
Files 2259 2176 -83
Lines 186487 176890 -9597
==========================================
- Hits 110255 102869 -7386
+ Misses 66351 64929 -1422
+ Partials 9881 9092 -789
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
The job-level `if: !matrix.test.merge_only` referenced the matrix context, which is unavailable in jobs.<id>.if. This failed workflow validation (startup failure, 0 jobs), so the required Integration Test checks never reported and the PR stayed BLOCKED. Resolve the matrix in a new set-matrix job instead: extract the entries to integration-test-matrix.json and filter out merge_only (Autobahn GIGA-mode) variants on pull_request with jq, then consume it via matrix.test = fromJSON(needs.set-matrix.outputs.tests). PRs run 21 of 32 entries; push and merge queue run the full matrix. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>


What
Two changes to
integration-test.ymlaimed at reducing CI wall-clock underubuntu-largerunner contention (PLT-761):Cancel superseded runs. Added a
concurrencyblock withcancel-in-progress: true, mirroring the pattern already ingo-test.yml. The group key usesgithub.shaforpushevents andgithub.refotherwise, so a new push to a PR branch cancels the prior ~40-job matrix instead of leaving it running to completion, while main/release builds (keyed on sha) are never cancelled.Defer the full Autobahn matrix to the merge queue. The 11
Autobahn …matrix entries are GIGA consensus-mode duplicates of their non-autobahn siblings (AUTOBAHN=true GIGA_EXECUTOR=true GIGA_STORAGE=true GIGA_OCC=true). Each is taggedmerge_only: true, and theintegration-testsjob now carries a per-combinationifthat skips those entries onpull_requestwhile still running them onmerge_groupandpush. Skipped combinations consume no runner.Why
go-test.ymlalready cancels superseded runs, butintegration-test.ymlhad noconcurrencyblock, so every push to a PR branch left the prior full matrix running. Underubuntu-largecontention this starves the queue and inflates everyone's effective wall-clock.Separately, ~1/3 of the integration matrix is Autobahn variants. The underlying module logic is already covered by the non-autobahn runs on every PR; the autobahn entries add consensus-mode-specific coverage. Deferring the full set to the merge queue removes ~11
ubuntu-largejobs from each PR run.Coverage safety
autobahn-integration-tests("Autobahn Basic") job, which is left untouched.merge_group) before any code lands onmain, so no regression signal is lost on the path to main — PRs just get faster feedback.integration-test-check:integration-tests's aggregate result stayssuccesson PRs (the 22 non-autobahn combinations still run; partial skips within a matrix don't downgrade the aggregate), and the autobahn smoke job still runs.Effect
ubuntu-largejobs per run, plus immediate reclamation of runners from superseded runs.