Skip to content

Commit b1ce91c

Browse files
ci: full Node-20 sweep — bump 14 remaining workflows ahead of 2026-09-16
Closes the "13 other workflows need a separate sweep" caveat from the 892cf3f release.yml row in DECISION_LOG. Single bundled commit bumps every Node-20-era action pin across the project so the 2026-09-16 GitHub deprecation deadline cannot strand a workflow. Per-action bumps (all workflows except release.yml, which closed in 892cf3f): actions/checkout@v4 → @v6 (14 workflows) actions/setup-python@v5 → @v6 (5 workflows) actions/setup-node@v4 → @v6 (4 workflows) actions/upload-artifact@v4 → @v7 (10 workflows) Plus docs.yml-only Pages bumps: actions/configure-pages@v5 → @v6 actions/upload-pages-artifact@v3 → @v5 actions/deploy-pages@v4 → @v5 Verified safe via official release-note reads: - checkout v5+v6: only breaking change is Node 24 runtime + runner v2.327.1+ requirement (GitHub-hosted satisfies). v6's $RUNNER_TEMP credential change only affects Docker container actions; we don't use them. - setup-python v6: sole breaking change is Node 24. Our `python- version:` usage unaffected. - setup-node v5+v6: v5 introduced package.json-driven auto-cache BUT moot for us — all 4 callers already set explicit `cache: "npm"`. v6 narrows auto-caching to npm only (also moot). - upload-artifact v5+v6: pure Node 24 bumps. v7 adds opt-in `archive: false` for unzipped uploads + internal ESM migration. Default zip-upload behavior preserved; all 10 callers use stable `name:`/`path:`/`retention-days:` patterns. - Pages actions: GitHub-internal Pages publishing path. Bumped to versions confirmed on Node 24 via repos/actions/configure-pages /contents/action.yml inspection. Intentionally NOT bumped: - sigstore/cosign-installer@v3 (release.yml) — signing-critical, requires Sigstore §8 re-verification on a fresh throwaway tag. Carve-out documented in the 892cf3f release.yml row of DECISION_LOG; future bump procedure encoded inline. - splunk/appinspect-api-action@v3.0.5 (appinspect-api.yml) — external Splunk-published action with its own cadence, NOT in scope for the Node 20 deprecation track. - github/codeql-action/* (codeql.yml, scorecard.yml) — separate publish cadence; CodeQL ships its own runtime independent of actions/* Node versions. - ossf/scorecard-action@v2.4.0 (scorecard.yml), gitleaks/ gitleaks-action@v2 (secret-scan.yml), zaproxy/action-baseline@ v0.14.0 (zap-baseline.yml) — third-party actions, not part of actions/* org. The historical comment at appinspect.yml:55 referencing `actions/setup-python@v5` is intentionally preserved (it documents a 2026-05-18 finding when v5 was current; the cache-key behavior applies to v6 too, but the historical attribution shouldn't be re-anchored). All 16 workflow files parse clean as UTF-8 YAML. doc-drift OK against build 663. DECISION_LOG entry 2026-05-20 row 2 records the bundled-sweep tradeoff in full.
1 parent 14ba666 commit b1ce91c

16 files changed

Lines changed: 46 additions & 45 deletions

.github/workflows/a11y-audit.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,10 @@ jobs:
4040
contents: read
4141

4242
steps:
43-
- uses: actions/checkout@v4
43+
- uses: actions/checkout@v6
4444

4545
- name: Set up Node.js
46-
uses: actions/setup-node@v4
46+
uses: actions/setup-node@v6
4747
with:
4848
node-version: "20"
4949
cache: "npm"
@@ -87,7 +87,7 @@ jobs:
8787
# forms a longitudinal record. Reviewing the trend across
8888
# runs is more useful than just the latest run.
8989
if: always()
90-
uses: actions/upload-artifact@v4
90+
uses: actions/upload-artifact@v7
9191
with:
9292
name: a11y-reports-${{ github.run_id }}
9393
path: tests/a11y/reports/
@@ -104,7 +104,7 @@ jobs:
104104
105105
- name: Upload Splunk logs on failure
106106
if: failure()
107-
uses: actions/upload-artifact@v4
107+
uses: actions/upload-artifact@v7
108108
with:
109109
name: a11y-splunk-logs-${{ github.run_id }}
110110
path: ci-logs/

.github/workflows/appinspect-api.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ jobs:
6767

6868
steps:
6969
- name: Checkout
70-
uses: actions/checkout@v4
70+
uses: actions/checkout@v6
7171

7272
- name: Build .spl
7373
run: bash scripts/package.sh

.github/workflows/appinspect.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ jobs:
5050

5151
steps:
5252
- name: Checkout
53-
uses: actions/checkout@v4
53+
uses: actions/checkout@v6
5454

5555
# `cache: pip` was removed 2026-05-18 — actions/setup-python@v5
5656
# requires `requirements.txt` or `pyproject.toml` to compute the
@@ -61,7 +61,7 @@ jobs:
6161
# restore the cache, but with a single one-line install of a pinned
6262
# package the cache hit is worthless. Keep simple.
6363
- name: Set up Python 3.11
64-
uses: actions/setup-python@v5
64+
uses: actions/setup-python@v6
6565
with:
6666
python-version: '3.11'
6767

@@ -159,7 +159,7 @@ jobs:
159159
160160
- name: Upload AppInspect JSON reports
161161
if: always()
162-
uses: actions/upload-artifact@v4
162+
uses: actions/upload-artifact@v7
163163
with:
164164
name: appinspect-reports
165165
path: .planning/appinspect/appinspect-*-ci.json

.github/workflows/ci.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,10 @@ jobs:
5353
permissions:
5454
contents: read
5555
steps:
56-
- uses: actions/checkout@v4
56+
- uses: actions/checkout@v6
5757

5858
- name: Set up Python
59-
uses: actions/setup-python@v5
59+
uses: actions/setup-python@v6
6060
with:
6161
python-version: "3.11"
6262

@@ -67,7 +67,7 @@ jobs:
6767
run: bash scripts/package.sh
6868

6969
- name: Upload .spl artifact
70-
uses: actions/upload-artifact@v4
70+
uses: actions/upload-artifact@v7
7171
with:
7272
name: wl_manager-spl
7373
path: dist/*.spl
@@ -79,7 +79,7 @@ jobs:
7979
permissions:
8080
contents: read
8181
steps:
82-
- uses: actions/checkout@v4
82+
- uses: actions/checkout@v6
8383

8484
- name: Run doc-drift guard
8585
# Same script the pre-commit hook runs locally. Verifies
@@ -95,10 +95,10 @@ jobs:
9595
permissions:
9696
contents: read
9797
steps:
98-
- uses: actions/checkout@v4
98+
- uses: actions/checkout@v6
9999

100100
- name: Set up Python
101-
uses: actions/setup-python@v5
101+
uses: actions/setup-python@v6
102102
with:
103103
python-version: "3.11"
104104

@@ -152,13 +152,13 @@ jobs:
152152
permissions:
153153
contents: read
154154
steps:
155-
- uses: actions/checkout@v4
155+
- uses: actions/checkout@v6
156156

157157
- name: Set up Node.js
158158
# Node 20 LTS. Vitest 3.x requires Node ≥18; we
159159
# pin to the latest LTS so the toolchain matches
160160
# what most contributors run locally.
161-
uses: actions/setup-node@v4
161+
uses: actions/setup-node@v6
162162
with:
163163
node-version: "20"
164164
# Cache npm dependencies keyed on package-lock.json

.github/workflows/codeql.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ jobs:
6363

6464
steps:
6565
- name: Checkout
66-
uses: actions/checkout@v4
66+
uses: actions/checkout@v6
6767

6868
- name: Initialize CodeQL
6969
uses: github/codeql-action/init@v3

.github/workflows/docs.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -52,14 +52,14 @@ jobs:
5252

5353
steps:
5454
- name: Checkout
55-
uses: actions/checkout@v4
55+
uses: actions/checkout@v6
5656
with:
5757
# Fetch full history so future `git-revision-date-localized`
5858
# plugin support (if we add it) can read commit dates.
5959
fetch-depth: 0
6060

6161
- name: Set up Python
62-
uses: actions/setup-python@v5
62+
uses: actions/setup-python@v6
6363
with:
6464
python-version: '3.11'
6565

@@ -88,7 +88,7 @@ jobs:
8888
# Always upload — even on build failure we want the partial
8989
# site for debugging (mkdocs writes what it has).
9090
if: always()
91-
uses: actions/upload-artifact@v4
91+
uses: actions/upload-artifact@v7
9292
with:
9393
name: site-${{ github.sha }}
9494
path: site/
@@ -120,12 +120,12 @@ jobs:
120120

121121
steps:
122122
- name: Checkout
123-
uses: actions/checkout@v4
123+
uses: actions/checkout@v6
124124
with:
125125
fetch-depth: 0
126126

127127
- name: Set up Python
128-
uses: actions/setup-python@v5
128+
uses: actions/setup-python@v6
129129
with:
130130
python-version: '3.11'
131131

@@ -143,13 +143,13 @@ jobs:
143143
run: mkdocs build --verbose
144144

145145
- name: Configure Pages
146-
uses: actions/configure-pages@v5
146+
uses: actions/configure-pages@v6
147147

148148
- name: Upload Pages artifact
149-
uses: actions/upload-pages-artifact@v3
149+
uses: actions/upload-pages-artifact@v5
150150
with:
151151
path: site/
152152

153153
- name: Deploy to GitHub Pages
154154
id: deployment
155-
uses: actions/deploy-pages@v4
155+
uses: actions/deploy-pages@v5

.github/workflows/e2e-full.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,10 @@ jobs:
5050
contents: read
5151

5252
steps:
53-
- uses: actions/checkout@v4
53+
- uses: actions/checkout@v6
5454

5555
- name: Set up Node.js
56-
uses: actions/setup-node@v4
56+
uses: actions/setup-node@v6
5757
with:
5858
node-version: "20"
5959
cache: "npm"
@@ -171,7 +171,7 @@ jobs:
171171
172172
- name: Upload logs on failure
173173
if: failure()
174-
uses: actions/upload-artifact@v4
174+
uses: actions/upload-artifact@v7
175175
with:
176176
name: e2e-full-logs-${{ github.run_id }}
177177
path: ci-logs/
@@ -182,7 +182,7 @@ jobs:
182182
# when a comparison fails. Uploading them lets the next morning's
183183
# triage check the actual visual divergence.
184184
if: failure()
185-
uses: actions/upload-artifact@v4
185+
uses: actions/upload-artifact@v7
186186
with:
187187
name: visual-diffs-${{ github.run_id }}
188188
path: tests/e2e/visual_diff/

.github/workflows/e2e-smoke.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,10 @@ jobs:
4545
contents: read
4646

4747
steps:
48-
- uses: actions/checkout@v4
48+
- uses: actions/checkout@v6
4949

5050
- name: Set up Node.js
51-
uses: actions/setup-node@v4
51+
uses: actions/setup-node@v6
5252
with:
5353
node-version: "20"
5454
cache: "npm"
@@ -121,7 +121,7 @@ jobs:
121121
122122
- name: Upload logs on failure
123123
if: failure()
124-
uses: actions/upload-artifact@v4
124+
uses: actions/upload-artifact@v7
125125
with:
126126
name: e2e-smoke-logs-${{ github.run_id }}
127127
path: ci-logs/

.github/workflows/integration-tests.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,10 @@ jobs:
4444
contents: read
4545

4646
steps:
47-
- uses: actions/checkout@v4
47+
- uses: actions/checkout@v6
4848

4949
- name: Set up Python
50-
uses: actions/setup-python@v5
50+
uses: actions/setup-python@v6
5151
with:
5252
python-version: "3.11"
5353

@@ -163,7 +163,7 @@ jobs:
163163
164164
- name: Upload logs on failure
165165
if: failure()
166-
uses: actions/upload-artifact@v4
166+
uses: actions/upload-artifact@v7
167167
with:
168168
name: splunk-logs-${{ github.run_id }}
169169
path: ci-logs/

.github/workflows/pip-audit.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,10 @@ jobs:
3434
permissions:
3535
contents: read
3636
steps:
37-
- uses: actions/checkout@v4
37+
- uses: actions/checkout@v6
3838

3939
- name: Set up Python
40-
uses: actions/setup-python@v5
40+
uses: actions/setup-python@v6
4141
with:
4242
python-version: "3.11"
4343

0 commit comments

Comments
 (0)