Fix inert-path skip: use predicate-quantifier 'every' in detect-changes#5816
Merged
Conversation
The detect-changes paths-filter classified every PR as non-inert, so the
skip-integration-tests job never fired and docs/markdown-only PRs always
ran the full integration suite.
dorny/paths-filter defaults to predicate-quantifier 'some', under which a
file matches non_inert if it matches ANY pattern. Because the first pattern
is '**', every file matched, making non_inert always true and inert_only
always false. Setting predicate-quantifier 'every' makes a file non_inert
only when it matches ALL patterns ('**' AND none of the inert paths), which
is the intended semantics. v3.0.2 (pinned SHA de90cc6) supports 'every'; the
prior comment claiming otherwise was incorrect.
Co-authored-by: Isaac
Co-authored-by: Isaac
Co-authored-by: Isaac
alexott
approved these changes
Jun 17, 2026
Resolve conflict in integration-tests.yml: keep main's INERT_PATHS_FILTER env refactor and carry-forward job, re-apply this PR's predicate-quantifier: 'every' fix on the detect-changes paths-filter step. Co-authored-by: Isaac
Contributor
|
If integration tests don't run automatically, an authorized user can run them manually by following the instructions below: Trigger: Inputs:
Checks will be approved automatically on success. |
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.
What
Add
predicate-quantifier: 'every'to thedetect-changespaths-filter step so the inert-path skip actually works.Why
The
skip-integration-testsjob is meant to post a synthetic success for PRs that only touch inert paths (docs/**, root*.md, issue templates,dependabot.yml,CODEOWNERS,LICENSE) instead of running the full suite. It never fires.dorny/paths-filterdefaults topredicate-quantifier: some, where a file matches a filter if it matches any pattern in the list. Thenon_inertfilter leads with'**', which matches every file, sonon_inertis always true andinert_onlyis always false. Every PR, including docs-only ones, runs the full integration suite.With
predicate-quantifier: every, a file matchesnon_inertonly when it matches all patterns:'**'AND none of the negated inert paths. Sonon_inertis empty exactly when every changed file is inert, which is the intended behavior.The prior comment claimed v3.0.2 does not support
every. It does — the pinned SHAde90cc6reads thepredicate-quantifierinput and supports both quantifiers.Verification
Evaluated the filter patterns against the pinned picomatch with both quantifiers:
some(before)every(after)CONTRIBUTING.mddocs/resources/job.mdREADME.mdLICENSE,.github/dependabot.ymlcatalog/resource.goA docs-only change now skips; a code change still runs.
This pull request and its description were written by Isaac.
NO_CHANGELOG=true