Skip to content

Commit fc771b6

Browse files
fix(ci): correctly skip code CI for docs-only PRs
dorny/paths-filter treats exclusion-only patterns as matching every non-excluded path under the default "some" quantifier, so docs-only PRs still set code=true. Add an explicit "**" include and use predicate-quantifier: every in tests, type-checker, and linter. Also gate Vulnerability Scan the same way on pull_request while keeping schedule and main push runs unconditional. Co-authored-by: Rip&Tear <theCyberTech@users.noreply.github.com>
1 parent b10c4ff commit fc771b6

4 files changed

Lines changed: 47 additions & 0 deletions

File tree

.github/workflows/linter.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,13 @@ jobs:
1616
- uses: dorny/paths-filter@d1c1ffe0248fe513906c8e24db8ea791d46f8590 # v3
1717
id: filter
1818
with:
19+
# Exclusion-only patterns match every non-excluded file under the
20+
# default "some" quantifier. Require all patterns (including "**")
21+
# so docs-only / markdown-only PRs correctly set code=false.
22+
predicate-quantifier: every
1923
filters: |
2024
code:
25+
- '**'
2126
- '!docs/**'
2227
- '!**/*.md'
2328

.github/workflows/tests.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,13 @@ jobs:
1616
- uses: dorny/paths-filter@d1c1ffe0248fe513906c8e24db8ea791d46f8590 # v3
1717
id: filter
1818
with:
19+
# Exclusion-only patterns match every non-excluded file under the
20+
# default "some" quantifier. Require all patterns (including "**")
21+
# so docs-only / markdown-only PRs correctly set code=false.
22+
predicate-quantifier: every
1923
filters: |
2024
code:
25+
- '**'
2126
- '!docs/**'
2227
- '!**/*.md'
2328

.github/workflows/type-checker.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,13 @@ jobs:
1616
- uses: dorny/paths-filter@d1c1ffe0248fe513906c8e24db8ea791d46f8590 # v3
1717
id: filter
1818
with:
19+
# Exclusion-only patterns match every non-excluded file under the
20+
# default "some" quantifier. Require all patterns (including "**")
21+
# so docs-only / markdown-only PRs correctly set code=false.
22+
predicate-quantifier: every
1923
filters: |
2024
code:
25+
- '**'
2126
- '!docs/**'
2227
- '!**/*.md'
2328

.github/workflows/vulnerability-scan.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,40 @@ permissions:
1212
contents: read
1313

1414
jobs:
15+
changes:
16+
name: Detect changes
17+
runs-on: ubuntu-latest
18+
outputs:
19+
code: ${{ steps.set.outputs.code }}
20+
steps:
21+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
22+
if: github.event_name == 'pull_request'
23+
- uses: dorny/paths-filter@d1c1ffe0248fe513906c8e24db8ea791d46f8590 # v3
24+
id: filter
25+
if: github.event_name == 'pull_request'
26+
with:
27+
# Exclusion-only patterns match every non-excluded file under the
28+
# default "some" quantifier. Require all patterns (including "**")
29+
# so docs-only / markdown-only PRs correctly set code=false.
30+
predicate-quantifier: every
31+
filters: |
32+
code:
33+
- '**'
34+
- '!docs/**'
35+
- '!**/*.md'
36+
- name: Set code output
37+
id: set
38+
run: |
39+
if [ "${{ github.event_name }}" != "pull_request" ]; then
40+
echo "code=true" >> "$GITHUB_OUTPUT"
41+
else
42+
echo "code=${{ steps.filter.outputs.code }}" >> "$GITHUB_OUTPUT"
43+
fi
44+
1545
pip-audit:
1646
name: pip-audit
47+
needs: changes
48+
if: needs.changes.outputs.code == 'true'
1749
runs-on: ubuntu-latest
1850
steps:
1951
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1

0 commit comments

Comments
 (0)