Skip to content

Commit ea064be

Browse files
ci: opt into Node 24 early for all 3 workflows (blog-documented env)
GitHub Actions runners deprecate Node 20 on 2026-06-02 and auto-switch to Node 24. Every run of our workflows currently emits the reminder annotation on actions/checkout@v4, setup-python@v5, upload-artifact@v4. Rather than chase six separate major-version bumps (checkout v4->v6, setup-python v5->v6, upload-artifact v4->v7, cache v4->v5, codecov v4->v6, download-artifact v3->?) — each a potential breaking change — use GitHub's documented escape hatch: set FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 as a workflow-level env var. Keeps existing action versions pinned, just swaps the runtime. Reference: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ Applied identically to all three workflows (ci-cd.yml, citation-audit.yml, build-wheels.yml). Security: pure runner config, no user input flows into run: blocks. Verification: actionlint + yaml.safe_load pass on all 3. Action version upgrades stay on the backlog for a separate dedicated sprint where each bump can be tested in isolation. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 5d3ed21 commit ea064be

3 files changed

Lines changed: 21 additions & 0 deletions

File tree

.github/workflows/build-wheels.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,12 @@ on:
3838
type: boolean
3939
default: false
4040

41+
# Opt into Node 24 runtime for JavaScript actions. GitHub's documented
42+
# migration path (2025-09-19 changelog) ahead of the 2026-06-02 hard
43+
# cutover. Preserves current action versions. No user input interpolated.
44+
env:
45+
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: 'true'
46+
4147
jobs:
4248
check_rust_present:
4349
name: Detect Rust crate

.github/workflows/ci-cd.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,14 @@ on:
1919
- both
2020
default: none
2121

22+
# Opt into Node 24 runtime early for all JavaScript actions.
23+
# GitHub's documented migration path (blog post 2025-09-19) before the
24+
# hard cutover on 2026-06-02. Keeps existing action versions intact and
25+
# just swaps the runtime, so no surface-area change in our steps.
26+
# Security: pure runner config, no user input.
27+
env:
28+
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: 'true'
29+
2230
jobs:
2331
test:
2432
runs-on: ${{ matrix.os }}

.github/workflows/citation-audit.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,13 @@ on:
5757
- '.github/workflows/citation-audit.yml'
5858
workflow_dispatch:
5959

60+
# Opt into Node 24 runtime early for all JavaScript actions.
61+
# GitHub's documented migration path (blog post 2025-09-19) before the
62+
# hard cutover on 2026-06-02. Keeps existing action versions intact.
63+
# Security: pure runner config, no user input.
64+
env:
65+
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: 'true'
66+
6067
concurrency:
6168
group: citation-audit-${{ github.ref }}
6269
cancel-in-progress: true

0 commit comments

Comments
 (0)