Skip to content

Conversation

@MikeMcC399
Copy link
Collaborator

Situation

CircleCI, GitHub Actions and local environments are not tied to a consistent Node.js version. If Node.js 24.11.0 Active LTS is used, npm install and markdown-link-check behave differently compared to running with Node.js 20.x or 22.x.

The CircleCI image ubuntu-2404:2025.09.1 is the latest available Ubuntu 24.04 machine image from CircleCI and which is built on Node.js 22.19.0, released Aug 28, 2025. This version of Node.js is now in Maintenance LTS status.

GitHub Actions, using the runner image ubuntu-24.04, sets Node.js 20.19.5 as default. This version of Node.js was released on Sept 3, 2025 and is in Maintenance LTS status, with planned end-of-life on April 30, 2026.

The Node.js Active LTS version is 24.11.0.

Environment Image or other definition for Node.js Default Node.js version
CircleCI ubuntu-2404:2025.09.1 22.19.0
GitHub Actions ubuntu-24.04 20.19.5
local clone - undefined

Differences and issues are seen if Node.js 24.11.0 is used:

Command \ Node.js version 20.19.5 22.19.0 24.11.0
npm install no change no change peer added
npm run check:markdown pass pass Node.js DEP0176 reported
npm run format:check pass pass pass
npm run lint pass pass pass

Change

To harmonize the use of Node.js related to using npm dependencies across different environments:

  1. Add .node-version and .nvmrc with 22.19.0 to the repo root, aligning with the version of Node.js defined by the CircleCI machine image ubuntu-2404:2025.09.1.

  2. Add actions/setup-node to each job of the GitHub Actions workflows

    For consistency with other actions, use the node20 version (actions/setup-node@v4) until other actions are ready to be updated to node24.

  3. Add information to the CONTRIBUTING.md document about using and maintaining the Node.js version in the repo.

Verification

n auto # or nvm use
npm install
git diff # confirm no changes made
npm run check:markdown # confirm no errors or deprecation message
npm run format:check # confirm no errors reported
npm run lint # confirm no errors reported

@cypress-app-bot
Copy link

@MikeMcC399

This comment was marked as outdated.

@MikeMcC399 MikeMcC399 marked this pull request as ready for review November 10, 2025 15:01
Copy link
Member

@jennifer-shehane jennifer-shehane left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds good, thanks!

@jennifer-shehane jennifer-shehane merged commit 4c0931c into cypress-io:master Nov 11, 2025
51 checks passed
@MikeMcC399 MikeMcC399 deleted the harmonize/node-version-22 branch November 11, 2025 14:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants