Skip to content

Commit 2f6bf07

Browse files
oblangatasclaude
andcommitted
fix(ci): the release gate is exercised when the release gate changes (WOR-871)
This PR changed the release gate and CI ran 36 green checks, none of which were a scan. `publish-docker.yml` triggers only on `v*` tags, and nothing else watched it — so the whole change would first execute at a real release. That is the identical gap this workstream already fixed for docker-security.yml, reintroduced one file over. Adds the release workflow to the scan job's paths filter, with an assertion so it cannot regress. Found by an independent close-out review. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1 parent 40f7ca6 commit 2f6bf07

2 files changed

Lines changed: 17 additions & 0 deletions

File tree

.github/workflows/docker-security.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@ on:
1212
# two, editing the cutoff or adding a suppression ships without ever
1313
# running the job it modifies. WOR-852.
1414
- '.github/workflows/docker-security.yml'
15+
# The RELEASE gate too. publish-docker.yml only triggers on `v*` tags,
16+
# so without this a change to it is exercised by nothing until a real
17+
# release — WOR-871 landed its whole release-gate change on a PR with
18+
# 36 green checks and zero scans among them.
19+
- '.github/workflows/publish-docker.yml'
1520
- '.grype*.yaml'
1621
# NOT covered by the glob above: Actions path globs do not cross `/`.
1722
# grype reads this second location too, and it is the exact blind spot
@@ -38,6 +43,11 @@ on:
3843
paths:
3944
# See the push filter above — a change to the gate must exercise it.
4045
- '.github/workflows/docker-security.yml'
46+
# The RELEASE gate too. publish-docker.yml only triggers on `v*` tags,
47+
# so without this a change to it is exercised by nothing until a real
48+
# release — WOR-871 landed its whole release-gate change on a PR with
49+
# 36 green checks and zero scans among them.
50+
- '.github/workflows/publish-docker.yml'
4151
- '.grype*.yaml'
4252
# NOT covered by the glob above: Actions path globs do not cross `/`.
4353
# grype reads this second location too, and it is the exact blind spot

tests/test_grype_ignore_expiry.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,13 @@ def test_the_scan_reruns_when_its_own_config_changes() -> None:
248248
# the nested location — the same blind spot CONFIGS covers above. An
249249
# ignore parked there would otherwise never re-trigger the scan.
250250
assert ".grype/config.yaml" in paths, f"{event}: nested grype config not in paths filter"
251+
# The release workflow triggers only on `v*` tags, so it is exercised
252+
# by nothing on a PR unless the scan job watches it. WOR-871 shipped
253+
# its entire release-gate change with 36 green checks and no scan
254+
# among them; this makes that impossible to repeat.
255+
assert ".github/workflows/publish-docker.yml" in paths, (
256+
f"{event}: release workflow changes run no scan"
257+
)
251258

252259

253260
# --- the RELEASE gate (WOR-871) --------------------------------------------

0 commit comments

Comments
 (0)