Skip to content

Take the bootstrap sweep off pull requests - #127

Open
sscarduzio wants to merge 2 commits into
masterfrom
ci/bootstrap-on-master-push
Open

Take the bootstrap sweep off pull requests#127
sscarduzio wants to merge 2 commits into
masterfrom
ci/bootstrap-on-master-push

Conversation

@sscarduzio

@sscarduzio sscarduzio commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

The problem

master-bootstrap-tests is a 34-version × 2-env matrix — 68 jobs — and it ran on four triggers:

    if: >
      github.event_name == 'schedule' ||
      github.event_name == 'workflow_dispatch' ||
      (github.event_name == 'push' && github.ref == 'refs/heads/master') ||
      (github.event_name == 'pull_request' && github.base_ref == 'master' && ...)

docs/dev/branching.md case 4 sends every pipeline and workflow change to master. Three such PRs moved there today — #120, #122, #126 — and each one queued its own 68 bootstrap jobs behind itself. On #122 the e2e legs it actually needed had all finished:

completed  🔬 E2E Tests (released plugins)  ×13
completed  🧪 E2E Tests (pre-build plugins)
queued     🚀 Bootstrap Tests               ×68

Approved, no failures, and unmergeable for hours — waiting on a sweep of plugins that were released weeks ago.

The change

One clause removed: the pull-request trigger.

    if: >
      github.event_name == 'schedule' ||
      github.event_name == 'workflow_dispatch' ||
      (github.event_name == 'push' && github.ref == 'refs/heads/master')

Every version in that matrix tests a plugin that is already out, so nothing a pull request changes can change the result. The nightly still sweeps them, a push to master still runs it — that is the moment the released set can actually move — and the manual dispatch is still there when someone wants it.

🤖 Generated with Claude Code

@sscarduzio
sscarduzio requested a review from coutoPL September 10, 2026 15:08
@coderabbitai

coderabbitai Bot commented Sep 10, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

Warning

Review limit reached

Next included review available in 59 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 1405db5f-b3cd-4159-b139-6d7bff553bcb

📥 Commits

Reviewing files that changed from the base of the PR and between ed0db16 and c5a9431.

📒 Files selected for processing (1)
  • .github/workflows/all-e2e-tests.yml

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: eea57d0c-d84b-42a5-9fdf-8bd6f2ca031d

📥 Commits

Reviewing files that changed from the base of the PR and between 4d95bbb and ed0db16.

📒 Files selected for processing (1)
  • .github/workflows/all-e2e-tests.yml

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The master-bootstrap-tests job in the GitHub Actions workflow now runs only after pushes to master. Scheduled, manually dispatched, and eligible pull request runs no longer execute this job.

Changes

Workflow trigger update

Layer / File(s) Summary
Restrict master bootstrap triggers
.github/workflows/all-e2e-tests.yml
The master-bootstrap-tests condition now allows only pushes to master.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Suggested reviewers: dzuming

Merge Risk: ⚪ Minimal · up to ed0db

The bootstrap sweep still runs on master pushes while no longer consuming CI capacity for pull requests, schedules, or manual runs. No actionable merge-blocking risk remains.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: removing the bootstrap sweep from pull request runs.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ci/bootstrap-on-master-push

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.

The matrix is 34 released versions x 2 envs, so it is 68 jobs.

docs/dev/branching.md case 4 sends every workflow change to master.
Three of them moved there today, and each queued its own 68 bootstrap
jobs behind itself: approved, no failures, unmergeable for hours, while
sweeping plugins that were released weeks ago.

Every version in that matrix tests a plugin that is already out, so
nothing a pull request changes can change the result. The nightly and a
push to master still run it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@sscarduzio sscarduzio changed the title Run the bootstrap sweep on master pushes only Take the bootstrap sweep off pull requests Sep 10, 2026
@sscarduzio
sscarduzio force-pushed the ci/bootstrap-on-master-push branch from ed0db16 to 1f388b4 Compare September 10, 2026 15:10
github.event_name == 'workflow_dispatch' ||
(github.event_name == 'push' && github.ref == 'refs/heads/master') ||
(github.event_name == 'pull_request' && github.base_ref == 'master' && github.event.pull_request.head.repo.fork == false)
(github.event_name == 'push' && github.ref == 'refs/heads/master')

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The problem can be solved differently - in the case of this repo, we can cancel old workflow runs.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point, and I took it: c5a9431 adds the concurrency block, so a second push to a pull request cancels the run it replaced.

I kept the if: change too, because the two fix different things.

Cancellation helps when one pull request runs twice. It does nothing when three pull requests are open, which is the case that filled the queue last week: each one still starts its own 68-job bootstrap sweep, and none of them supersedes the others.

The if: change is about what the job proves, not about how long it holds runners. master-bootstrap-tests runs 34 already-released versions against already-released plugins. No change in a pull request can change that result, so the run is not a slow signal, it is no signal.

The group is the run id for everything that is not a pull request. Grouping those by ref would make a nightly wait for a master push instead of running, which is worse than what we have now.

coutoPL's point on the review: a stale run can be cancelled instead. That is true and worth
having, so it is here. It covers a different case, though. Cancelling helps when the same pull
request is pushed twice. It does nothing for three open pull requests, which still queue their
own bootstrap sweep each.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.

2 participants