Skip to content

CI: move Actions off the deprecated Node 20 runtime (checkout@v4, rust-cache) #26

Description

@Zorlin

What

Every CI run logs ~9 un-dismissable deprecation warnings. They come from the GitHub Actions runner's Node runtime, not from jetpack itself — jetpack has no Node (no package.json, no setup-node, the Dockerfile is just debian:trixie-slim + the binary). The runner now defaults to Node 24 and warns about actions still built on Node 20.

The actual warnings (from run 27831976272)

  1. actions/checkout@v4 — built on Node 20, so the runner forces it to Node 24 and warns, on every build-matrix job (the bulk of the "9"):

    ##[warning]Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4

  2. Swatinem/rust-cache@v2 — emits Node's punycode deprecation:

    (node:…) [DEP0040] DeprecationWarning: The \punycode` module is deprecated.`

Ref: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/

Fix

Jetpack's workflows don't need a setup-node step — the fix is to bump the offending actions to versions built on Node 22+/24:

  • actions/checkout@v4actions/checkout@v5 (Node 24 runtime) across ci.yml, release.yml, pages.yml.
  • Swatinem/rust-cache@v2 → latest release (clears the punycode warning).
  • While in there, audit the rest: peaceiris/actions-hugo@v3 (unmaintained — consider the official route or hugomods), actions/upload-pages-artifact@v3@v4, dtolnay/rust-toolchain@stable (pin a release tag rather than the moving stable), and the docker/* + actions/*@v4 set.

Acceptance

  • A CI run on the branch shows zero Node-deprecation warnings in the summary.
  • All jobs still pass.

Note: the runner is already on Node 24; "22.x" is the floor — any action built on ≥ 22/24 clears the warnings. No setup-node is needed because jetpack executes no Node itself.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions