ci: run the full matrix automatically on the paths that break master (#281) - #292
Conversation
…281) The matrix stays off PRs for free-tier minutes, and the consequence is that the job which breaks master is a job that never ran on the PR. Three breakages this week, all invisible on a green PR for exactly that reason: - a Rails 7.1-only constant (#283) - JRuby not implementing Kernel#fork (#283) - a zero-width skip_area mask (#280) Every one was found by adding `full-ci` BY HAND after master had already gone red, which is a process that works only when someone remembers. All three came from `test/`, `gemfiles/` or `.github/`, so the matrix now runs automatically when a PR touches those. The label stays for everything else. Paths are asked for over the API rather than `git diff`: checkout is depth-1, so the base commit is not in the clone to diff against. `lib/` is deliberately NOT on the list. It changes on nearly every PR, and the functional and minimal-setup jobs already cover it -- putting it here would run 25 cells on almost everything and give back the cost decision the exclusion exists to make. That is a trade, not a claim that `lib/` is safe, and CONTRIBUTING.md says so. CONTRIBUTING.md also gets the two reading rules that cost real time this week: `cancelled` is not a pass, and `gh run list --branch master` without `--workflow Test` will hand you whichever workflow ran last -- it reported a Dependabot success while `Test` was failing on the same commit. Detection self-tested against real paths; YAML validated.
|
Warning Review limit reachedNext included review available in 43 minutes. View limit detailsLimit 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. Review configuration: ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
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 |
Reviewer's GuideThe PR makes the expensive CI matrix run automatically for pull requests touching Flow diagram for automatic full CI matrix selectionflowchart TD
A[Pull request event] --> B[GitHub API changed files]
B --> C{Touches test/ gemfiles/ or .github/?}
C -->|yes| D[Run full Test Ruby & Rails matrix]
C -->|no| E{full-ci label present?}
E -->|yes| D
E -->|no| F[Run standard cost-controlled CI]
G[Push to master manual dispatch or weekly drift check] --> D
File-Level Changes
Possibly linked issues
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
Closes the two actionable boxes on #281.
The matrix stays off PRs for free-tier minutes; the consequence is that the job which breaks
masteris a job that never ran on the PR. Three breakages this week, all invisible behind a green PR for exactly that reason:test/Kernel#fork(#283)test/skip_areamask (#280)test/+lib/Every one was caught by adding
full-ciby hand, after master was already red — a process that works only when someone remembers.Change
The matrix now runs automatically when a PR touches
test/,gemfiles/or.github/. The label stays for everything else.Changed paths are read from the API, not
git diff— checkout is depth-1, so the base commit isn't in the clone to diff against.Self-tested:
lib/is deliberately excludedIt changes on nearly every PR, and the functional + minimal-setup jobs already cover it. Including it would run 25 cells on almost everything and hand back the cost decision this exclusion exists to make. That is a trade, not a claim that
lib/is safe — andCONTRIBUTING.mdnow says exactly that, with guidance on when to add the label by hand.Also documented in CONTRIBUTING.md
The two reading rules that cost real time this week:
cancelledis not a pass. It occupies a verdict's slot while carrying none — the JRuby lane sat broken for 15 consecutive runs looking like this.gh run list --branch masterneeds--workflow Test. Without it you get whichever workflow ran last; it reported a Dependabot success whileTestwas failing on the same commit.Still open on #281 and human-only: branch protection requiring the master-push matrix, once #249 settles the check names.
YAML validated.
Summary by Sourcery
Run the full CI matrix automatically for pull requests that modify historically high-risk paths while documenting the remaining opt-in and CI monitoring rules.
New Features:
Enhancements:
CI:
Documentation: