Context
GitHub is deprecating Node.js 20 on Actions runners per blog post:
- 2026-06-02 — Node 24 becomes default (actions with a Node 20 wrapper get forced to Node 24 unless opted out)
- 2026-09-16 — Node 20 removed from runners entirely (any unmigrated action hard-fails)
The v0.12.1 release run surfaced warnings for actions/checkout@v4 and actions/upload-artifact@v4 still bundling Node 20.
Scope
Update .github/workflows/release.yml and .github/workflows/ci.yml:
| Current |
Target |
Notes |
actions/checkout@v4 |
actions/checkout@v5 |
Node 24 bundle |
actions/upload-artifact@v4 |
actions/upload-artifact@v5 |
Node 24 bundle, API-compatible |
actions/download-artifact@v4 |
actions/download-artifact@v5 |
Node 24 bundle |
actions/setup-node@v4 |
actions/setup-node@v5 |
Node 24 bundle |
dtolnay/rust-toolchain@stable |
verify upstream has Node 24 release |
no explicit version tag |
Swatinem/rust-cache@v2 |
verify upstream |
cache format stable |
softprops/action-gh-release@v2 |
verify upstream has Node 24 release |
|
Acceptance
Priority
Not urgent — 5 months of runway. Bundle into the next feature release that touches CI anyway.
Context
GitHub is deprecating Node.js 20 on Actions runners per blog post:
The v0.12.1 release run surfaced warnings for
actions/checkout@v4andactions/upload-artifact@v4still bundling Node 20.Scope
Update
.github/workflows/release.ymland.github/workflows/ci.yml:actions/checkout@v4actions/checkout@v5actions/upload-artifact@v4actions/upload-artifact@v5actions/download-artifact@v4actions/download-artifact@v5actions/setup-node@v4actions/setup-node@v5dtolnay/rust-toolchain@stableSwatinem/rust-cache@v2softprops/action-gh-release@v2Acceptance
Priority
Not urgent — 5 months of runway. Bundle into the next feature release that touches CI anyway.