ci: skip the jobs a change gives nothing to read - #96
Merged
Conversation
Every pull request spent four runners, whatever it changed. A change to `.idea/` or the dependabot config gives Lint, Test and Build nothing to read, and a documentation change gives the test matrix nothing. A `changed` job now reads the diff once and sorts each file into one of three buckets. Anything this file does not recognise counts as code and runs everything, so skipping a job takes a deliberate list entry. Documentation still runs Lint and Build, because `docs:check` reads every `docs/` page and `pack:check` reads the seven it names along with README.md and LICENSE. Only the test matrix has nothing to say about it. The gate is a job with an `if`, not a `paths-ignore:` on the trigger. That filter stops the run happening at all, which leaves main's required checks pending forever and blocks the merge. A job skipped by an `if` still reports under its usual name with a `skipped` conclusion, which a ruleset accepts.
|
Warning Review limit reachedNext included review available in 8 minutes. View limit detailsLimit details: You’ve used the included review currently available. Your 90 included PR review attempts over the past 7 days set your current allowance at 1 review per hour. Your organization has reached its usage spending cap. Adjust your spending cap in the billing tab. Review configuration: ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Every pull request spends four runners whatever it changed, and some of those runners have nothing to read. A
changedjob now lists the pull request's files once and sorts each into one of three buckets, then turns off the jobs below it that would have no opinion. A change to.idea/,.gitignore,.coderabbit.yaml,.github/dependabot.ymlor the pull request template skips all three. A documentation change still runs Lint and Build, becausedocs:checkreads everydocs/page andpack:checkreads the seven it names along with README.md and LICENSE, and only the test matrix has nothing to say about it. Anything the job does not recognise counts as code and runs everything, so skipping takes a deliberate entry on a list. The gate is a job-levelifrather than apaths-ignore:on the trigger, because that filter stops the run happening at all and leaves main's required checks pending forever, while a job turned off by anifstill reports under its usual name with askippedconclusion.Two things worth a reviewer's eye. The claim that a ruleset accepts a skipped check in place of a passing one is the load-bearing one here, and it wants confirming on the first documentation-only pull request that
Test (Node 22.x)andTest (Node 26.x)both appear as skipped rather than missing. And the files endpoint stops at 3000 and reports the truncation nowhere, so the job compares its own count against the event payload's and runs everything when the two disagree. The branch name is not conventional and there is no user-facing behaviour to document, hence the two unticked boxes.Conventional commit message, used as the title
Conventional branch name, like
feat/concise-descriptionFull check with
pnpm run checkpassedRebased off latest main
User-facing behaviour is documented in
docs/