Skip to content

ci: Drop Node.js 18, run jobs on Node.js 24#8499

Draft
Mrtenz wants to merge 2 commits intomainfrom
mrtenz/ci-node-24
Draft

ci: Drop Node.js 18, run jobs on Node.js 24#8499
Mrtenz wants to merge 2 commits intomainfrom
mrtenz/ci-node-24

Conversation

@Mrtenz
Copy link
Copy Markdown
Member

@Mrtenz Mrtenz commented Apr 16, 2026

Explanation

Node.js 18 is EOL since April 2025.

We should drop Node.js 18 support in packages before merging this though.

References

Checklist

  • I've updated the test suite for new or updated code as appropriate
  • I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate
  • I've communicated my changes to consumers by updating changelogs for packages I've changed
  • I've introduced breaking changes in this PR and have prepared draft pull requests for clients and consumer packages to resolve them

@Mrtenz Mrtenz mentioned this pull request Apr 16, 2026
4 tasks
github-merge-queue bot pushed a commit that referenced this pull request Apr 16, 2026
## Explanation

ESLint consistently runs 40-50 seconds faster on Node.js 24 compared to
Node.js 22. I've updated CI to run all jobs that are currently running
on Node.js 22 to run on Node.js 24. Once we drop support for Node.js 18
we can do #8499 instead.

## References

<!--
Are there any issues that this pull request is tied to?
Are there other links that reviewers should consult to understand these
changes better?
Are there client or consumer pull requests to adopt any breaking
changes?

For example:

* Fixes #12345
* Related to #67890
-->

## Checklist

- [ ] I've updated the test suite for new or updated code as appropriate
- [ ] I've updated documentation (JSDoc, Markdown, etc.) for new or
updated code as appropriate
- [ ] I've communicated my changes to consumers by [updating changelogs
for packages I've
changed](https://github.com/MetaMask/core/tree/main/docs/processes/updating-changelogs.md)
- [ ] I've introduced [breaking
changes](https://github.com/MetaMask/core/tree/main/docs/processes/breaking-changes.md)
in this PR and have prepared draft pull requests for clients and
consumer packages to resolve them

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> CI-only changes that primarily adjust Node versions; main risk is
unexpected job failures due to Node.js 24/runtime dependency
incompatibilities.
> 
> **Overview**
> Updates `.github/workflows/lint-build-test.yml` to add **Node.js 24**
to the `prepare` matrix and switch the `lint`, `validate-changelog`,
`build`, and `test-scripts` jobs from **Node.js 22** to **Node.js 24**.
> 
> The per-workspace `test` job matrix remains on `18.x/20.x/22.x`, so
Node 24 is added for faster tooling runs without changing the main test
coverage matrix.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
9a0404e. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
strategy:
matrix:
node-version: [18.x, 20.x, 22.x]
node-version: [20.x, 22.x, 24.x]
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Should we wait and drop both 18 and 20 in two weeks? https://endoflife.date/nodejs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants