Skip to content

Commit 160d387

Browse files
committed
Run the gating checks on every pull request
Required status checks and paths filters do not mix. A filtered workflow creates no check context on a pull request that misses the filter, and a required context that never reports blocks the merge indefinitely -- so python-tests, ruff, unsupported-python-install and check_version cannot be required while they sit behind filters. That is not a coincidence in the current required set: package-check, the e2e jobs and dependency-review-gate are the five that are required today, and they are exactly the ones with no paths filter. Drop the filters from the pull_request triggers. The push triggers keep theirs, since branch protection does not read those. Costs about a minute of runner time per pull request.
1 parent a1996f2 commit 160d387

4 files changed

Lines changed: 16 additions & 17 deletions

File tree

.github/workflows/dependency-audit.yml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,10 @@ env:
1414
on:
1515
schedule:
1616
- cron: "17 6 * * *"
17+
# Unfiltered on purpose: a required status check behind a paths filter never
18+
# reports on a pull request that misses the filter, and an unreported
19+
# required check blocks the merge forever.
1720
pull_request:
18-
paths:
19-
- "pyproject.toml"
20-
- "uv.lock"
21-
- ".github/workflows/dependency-audit.yml"
2221
push:
2322
branches: [main]
2423
paths:

.github/workflows/python-tests.yml

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,12 @@ on:
1313
- "pyproject.toml"
1414
- "uv.lock"
1515
- ".github/workflows/python-tests.yml"
16+
# Deliberately unfiltered, unlike the push trigger above. A required status
17+
# check that sits behind a paths filter never reports on a pull request that
18+
# misses the filter, and an unreported required check blocks the merge
19+
# forever. These jobs finish in well under a minute, so running them on every
20+
# pull request costs little and is what makes them safe to require.
1621
pull_request:
17-
paths:
18-
- "socketsecurity/**/*.py"
19-
- "tests/unit/**/*.py"
20-
- "tests/core/**/*.py"
21-
- "pyproject.toml"
22-
- "uv.lock"
23-
- ".github/workflows/python-tests.yml"
2422
workflow_dispatch:
2523

2624
permissions:

.github/workflows/version-check.yml

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
11
name: Version Check
22
on:
3+
# Unfiltered on purpose: a required status check behind a paths filter never
4+
# reports on a pull request that misses the filter, and an unreported
5+
# required check blocks the merge forever.
36
pull_request:
47
types: [opened, synchronize, ready_for_review]
5-
paths:
6-
- 'socketsecurity/**'
7-
- 'pyproject.toml'
8-
- 'uv.lock'
9-
# Included so a change to the check itself is exercised by its own PR.
10-
- '.github/workflows/version-check.yml'
118

129
permissions:
1310
contents: read

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@
2929
- Unit Tests now reports only on the test suite. Previously an advisory
3030
published against an unchanged pin surfaced as "Unit Tests failed" while
3131
every test passed.
32+
- Dropped the `paths` filters from the pull request triggers on Unit Tests and
33+
Version Check. A required status check behind a `paths` filter never reports
34+
on a pull request that misses the filter, and an unreported required check
35+
blocks the merge indefinitely, so the filters had to go before these jobs
36+
could be marked required. Each finishes in well under a minute.
3237

3338
## 2.9.4
3439

0 commit comments

Comments
 (0)