Skip to content

Move CI and release workflows off deprecated Node.js 20 #27

Closed

Description

@Herm71

Problem

GitHub Actions warns on every run (first seen on #25):

Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@v4, actions/checkout@v4, actions/setup-node@v4.

Separately, the workflows install Node 20 for our own steps:

.github/workflows/ci.yml:76       node-version: 20   (tests job)
.github/workflows/ci.yml:104      node-version: 20   (js job)
.github/workflows/release.yml:20  node-version: 20

Node 20 reached end of life in April 2026. It has already bitten us once: node --test with a glob pattern needs Node 21+, which is why test:unit had to change in #25 (87c4761).

Fix

  • Move all three node-version settings to the current LTS (22 or 24), and keep them in sync. One option is an .nvmrc read via node-version-file: .nvmrc, which also pins local development.
  • Move actions/checkout, actions/setup-node and actions/cache to the major versions that run on Node 24, if they're released. Keep shivammathur/setup-php@v2 and softprops/action-gh-release@v2 current too.
  • Consider an engines.node field in package.json so a too-old local Node fails clearly.
  • Coordinate with Clear npm audit findings in dev dependencies (@wordpress/scripts tree) #26: the @wordpress/scripts upgrade may raise the minimum Node version.

Acceptance

  • CI runs with no Node.js deprecation warning.
  • A test release (vX.Y.Z-rc.N) still builds and attaches jc-core-functionality.zip, published as a prerelease.

Activity

  1. added this to the v1.3.0 — Maintenance milestone on Oct 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    toolingBuild, lint, CI, release tooling

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions