Skip to content

Fix inert-path skip: use predicate-quantifier 'every' in detect-changes#5816

Merged
chrisst merged 5 commits into
mainfrom
ci-inert-skip-predicate-quantifier
Jun 18, 2026
Merged

Fix inert-path skip: use predicate-quantifier 'every' in detect-changes#5816
chrisst merged 5 commits into
mainfrom
ci-inert-skip-predicate-quantifier

Conversation

@chrisst

@chrisst chrisst commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

What

Add predicate-quantifier: 'every' to the detect-changes paths-filter step so the inert-path skip actually works.

Why

The skip-integration-tests job 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-filter defaults to predicate-quantifier: some, where a file matches a filter if it matches any pattern in the list. The non_inert filter leads with '**', which matches every file, so non_inert is always true and inert_only is always false. Every PR, including docs-only ones, runs the full integration suite.

With predicate-quantifier: every, a file matches non_inert only when it matches all patterns: '**' AND none of the negated inert paths. So non_inert is 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 SHA de90cc6 reads the predicate-quantifier input and supports both quantifiers.

Verification

Evaluated the filter patterns against the pinned picomatch with both quantifiers:

Changed file some (before) every (after)
CONTRIBUTING.md non_inert → runs inert → skips
docs/resources/job.md non_inert → runs inert → skips
README.md non_inert → runs inert → skips
LICENSE, .github/dependabot.yml non_inert → runs inert → skips
catalog/resource.go non_inert → runs non_inert → runs

A docs-only change now skips; a code change still runs.

This pull request and its description were written by Isaac.

NO_CHANGELOG=true

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
@chrisst chrisst requested review from a team as code owners June 17, 2026 17:05
@chrisst chrisst requested review from alexott and rauchy and removed request for a team June 17, 2026 17:05
@chrisst chrisst temporarily deployed to test-trigger-is June 17, 2026 17:05 — with GitHub Actions Inactive
@chrisst chrisst temporarily deployed to test-trigger-is June 17, 2026 17:05 — with GitHub Actions Inactive
@chrisst chrisst temporarily deployed to test-trigger-is June 17, 2026 17:11 — with GitHub Actions Inactive
@chrisst chrisst temporarily deployed to test-trigger-is June 17, 2026 17:12 — with GitHub Actions Inactive
@chrisst chrisst temporarily deployed to test-trigger-is June 17, 2026 17:12 — with GitHub Actions Inactive
@chrisst chrisst temporarily deployed to test-trigger-is June 17, 2026 17:12 — with GitHub Actions Inactive
@chrisst chrisst enabled auto-merge June 17, 2026 19:03
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
@chrisst chrisst temporarily deployed to test-trigger-is June 17, 2026 19:35 — with GitHub Actions Inactive
@chrisst chrisst temporarily deployed to test-trigger-is June 17, 2026 19:37 — with GitHub Actions Inactive
@chrisst chrisst disabled auto-merge June 18, 2026 17:18
@chrisst chrisst temporarily deployed to test-trigger-is June 18, 2026 17:21 — with GitHub Actions Inactive
@github-actions

Copy link
Copy Markdown
Contributor

If integration tests don't run automatically, an authorized user can run them manually by following the instructions below:

Trigger:
go/deco-tests-run/terraform

Inputs:

  • PR number: 5816
  • Commit SHA: 36a20fc8f855321b43ef55c4717f79b718b736e6

Checks will be approved automatically on success.

@chrisst chrisst temporarily deployed to test-trigger-is June 18, 2026 17:22 — with GitHub Actions Inactive
@chrisst chrisst merged commit 2385b64 into main Jun 18, 2026
16 of 17 checks passed
@chrisst chrisst deleted the ci-inert-skip-predicate-quantifier branch June 18, 2026 23:19
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