Repository navigation
Skip CI when a change can't affect the cargo build - #285
Merged
Merged
Conversation
A PR that only touched workflow names (#284) ran all nine CI jobs, four of them on macOS runners. CI now filters on paths: docs, Markdown, examples, the npm/PyPI/NuGet wrappers, packaging/ and the other workflows no longer trigger it. packaging/windows/ stays in because the Windows test job runs check-static-crt.ps1 from there, and ci.yml stays in so changes to CI itself still run it. No branch has required status checks, so a skipped CI can't block a merge. Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
siGit Code Review couldn't finish this review: the model service was unavailable. Mention @sigit-code-review to try again. Automated review by siGit Code Review · commit f74dfa3 · see the review dashboard |
setoelkahfi
approved these changes
Oct 29, 2026
paydii
approved these changes
Oct 29, 2026
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.
#284 only renames workflows and fixes a shell step, but it still ran all nine CI jobs: fmt, clippy on four targets and tests on four targets. Four of those are on macOS runners, which GitHub bills at 10x the Linux rate, and the Windows ones at 2x.
CI now has a
pathsfilter, shared betweenpushandpull_requestthrough a YAML anchor. It starts from**and drops the parts of the repo that can't change what cargo builds: Markdown,docs/,examples/, the npm/PyPI/NuGet wrappers,packaging/,.agents/and the other workflows. Two paths come back in.packaging/windows/stays because the Windows test job runscheck-static-crt.ps1from there, andci.ymlstays so a change to CI still runs CI. A PR that mixes ignored and Rust files still runs everything.No branch has required status checks right now, so a skipped CI can't leave a PR stuck waiting. If CI becomes a required check later, this needs a small always-run gate job, since GitHub treats a workflow skipped by a path filter as pending.
This PR changes
ci.ymlitself, so CI runs on it. #284 would skip under the new filter. The assurance "Build image" job would still run there, since #284 touchesrelease-assurance-image.ymland that workflow has its own path filter.