Skip to content

ci: upgrade Node.js to 26 (test job pinned to 24)#402

Merged
mizdra merged 2 commits into
mainfrom
ci/upgrade-to-node-26
May 20, 2026
Merged

ci: upgrade Node.js to 26 (test job pinned to 24)#402
mizdra merged 2 commits into
mainfrom
ci/upgrade-to-node-26

Conversation

@mizdra
Copy link
Copy Markdown
Owner

@mizdra mizdra commented May 16, 2026

Summary

  • Bump the default Node.js version across CI workflows to 26 now that it has been released.
  • Skip Node 26 in the test job due to a libuv issue (libuv#5010); test on Node 22 and 24 instead.
  • Trim the test matrix to save CI resources.

Changes

test job

  • Run on all 3 OSes (ubuntu / macos / windows) only for Node 24 / stylelint 17.
  • Run Node 22 (stylelint 17) on ubuntu only.
  • Run Node 24 (stylelint 16) on ubuntu only.
  • Node 26 is excluded for now due to the libuv Windows issue (also documented in the workflow as a comment).

vscode-test job

  • Pin to Node 26 (drop Node 22 from the matrix).
  • Rationale: The VS Code extension host runs tests with the Node.js bundled into VS Code, so the runner's Node.js version does not affect the tests.

Other

  • Bump lint, build, and check-generated-in-examples jobs to Node 26.
  • Switch release.yml runner from ubuntu-latest to ubuntu-24.04-arm to match other jobs.

Test plan

  • Confirm CI passes

Bump the default Node.js version across CI workflows to 26 now that it has
been released. Drop multi-OS coverage for older Node and for vscode-test:

- test job: only run Node 26 / stylelint 17 across ubuntu/macos/windows.
  Older Node versions (22, 24) run on ubuntu only since OS-specific issues
  in old Node versions almost always reproduce on ubuntu too.
- vscode-test job: pin to Node 26. The extension host uses VS Code's
  bundled Node, so the runner's Node version does not affect tests.
- release.yml: switch runner to ubuntu-24.04-arm to match other jobs.
@mizdra mizdra added the Type: CI Changes to CI configuration files and scripts label May 16, 2026
@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented May 16, 2026

⚠️ No Changeset found

Latest commit: f71e0f6

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

The test job currently runs on Node 26, but libuv has a Node 26-specific
issue (libuv/libuv#5010). Pin the test matrix
to Node 22 and 24 until the upstream fix lands.
@mizdra mizdra force-pushed the ci/upgrade-to-node-26 branch from 01d4819 to f71e0f6 Compare May 20, 2026 13:21
@mizdra mizdra changed the title ci: upgrade default Node.js to 26 and trim test matrix ci: upgrade Node.js to 26 (test job pinned to 24) May 20, 2026
@mizdra mizdra marked this pull request as ready for review May 20, 2026 13:31
@mizdra mizdra requested a review from Copilot May 20, 2026 13:31
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Updates GitHub Actions workflows to use Node.js 26 by default while keeping the main test matrix on Node 24 (with targeted Node 22 coverage) due to a referenced Windows libuv issue, and trims the test matrix to reduce CI usage.

Changes:

  • Bump Node.js from 24 → 26 for lint, build, check-generated-in-examples, and release.
  • Adjust test matrix to run Node 24 across all OSes, with Node 22 and Stylelint 16 runs on Ubuntu only.
  • Pin vscode-test workflow runs to Node 26 and simplify its matrix.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
.github/workflows/release.yml Switch release runner to ubuntu-24.04-arm and bump Node to 26 for release steps.
.github/workflows/ci.yml Bump default CI Node to 26; trim test matrix and pin vscode-test to Node 26.
.github/workflows/check-generated-in-examples.yml Bump Node to 26 for generated-example verification job.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/ci.yml
fail-fast: false
matrix:
node: [22, 24]
# NOTE: We would like to test with Node.js 26 as well, but we are limited to Node.js 24 due to test failures on Windows.
@mizdra mizdra merged commit b072745 into main May 20, 2026
19 checks passed
@mizdra mizdra deleted the ci/upgrade-to-node-26 branch May 20, 2026 13:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Type: CI Changes to CI configuration files and scripts

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants