Skip to content

Move CI from Node 22 to Node 26 - #283

Merged
lukasz-zimnoch merged 7 commits into
mainfrom
ci-node-26-from-22
Oct 22, 2026
Merged

lukasz-zimnoch merged 7 commits into
mainfrom
ci-node-26-from-22

Conversation

@nkuba

@nkuba nkuba commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator

Depends on: #284

Node 22 reaches end of life on 2027-04-30. Node 26 becomes LTS on 2026-10-28 and is supported until 2029-04-30. This moves .nvmrc from 22 to 26, and every setup-node step already reads it with check-latest: true.

On Node 26, pnpm install failed inside netlify-cli. #284 removes netlify-cli, so this PR needs no dependency changes. The jwa override from the first version of this PR is reverted.

solidity.yml and dapp.yml now also run when .nvmrc, the root package.json or pnpm-lock.yaml changes. Before, a change to any of those alone ran no checks.

All solidity and dapp jobs pass locally on Node 26.12.1 (822 Hardhat tests).

Resolves: https://linear.app/thesis-co/issue/MEZO-5237

nkuba added 2 commits October 22, 2026 12:23
netlify-cli 17 pulls in jsonwebtoken 9.0.2, then jws 3.2.2 and jwa 1.4.1. jwa 1.4.1 loads
buffer-equal-constant-time at import, and that module reads SlowBuffer.prototype. Node 26 no longer
exposes SlowBuffer, so the netlify-cli postinstall crashes and pnpm install fails before hardhat is
installed.

jwa 1.4.2 loads buffer-equal-constant-time only when crypto.timingSafeEqual is missing, which never
happens on supported Node versions. It is inside the ^1.4.1 range that jws already asks for, so the
override changes one package. The lockfile also picks up the registry's new deprecation text for
glob 7.1.7.
Node 22 reaches end of life on 2027-04-30. Node 26 is the next LTS line, LTS from 2026-10-28 and
supported until 2029-04-30.

.nvmrc moves from 22 to 26. Every setup-node step already reads it with check-latest, so each run
installs the newest 26.x. The solidity build, format, test and test:upgrades jobs and the dapp
format, test and build jobs pass locally on 26.12.1.

Refs: https://linear.app/thesis-co/issue/MEZO-5237
@nkuba nkuba self-assigned this Oct 22, 2026
@linear-code

linear-code Bot commented Oct 22, 2026

Copy link
Copy Markdown

MEZO-5237

.nvmrc picks the Node version for both workflows, but their path filters only listed solidity/**,
dapp/** and the workflow file. A PR that moved Node to a new major ran no checks at all, and the
push to main after merging it wouldn't run them either.

Both workflows now also trigger on .nvmrc, for pull requests and for pushes to main. A push still
only builds, tests and dry-runs the deploy, because the testnet deploy needs workflow_dispatch.

Refs: https://linear.app/thesis-co/issue/MEZO-5237
@github-actions

github-actions Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Coverage report for ./dapp

St.❔
Category Percentage Covered / Total
🟢 Statements 100% 2/2
🟢 Branches 100% 0/0
🟢 Functions 100% 1/1
🟢 Lines 100% 2/2

Test suite run success

2 tests passing in 1 suite.

Report generated by 🧪jest coverage report action from 217afb8

nkuba added 3 commits October 22, 2026 12:38
Both workflows ran only when their own directory, their workflow file or .nvmrc changed. A change
to the root package.json or pnpm-lock.yaml alone, such as a dependency bump or a pnpm override,
skipped every build and test that runs against those dependencies.

The push and pull_request paths now also match both root files. A sibling package's dependency
change reaches the shared lockfile, so it triggers both workflows too.
This reverts commit 32aceab.

The next merge removes netlify-cli, the only package that pulled in jwa 1.4.1, so the override has
nothing left to apply to.
@nkuba
nkuba changed the base branch from main to remove-netlify-cli October 22, 2026 10:52
@nkuba
nkuba requested a review from lukasz-zimnoch October 22, 2026 11:15
@nkuba
nkuba marked this pull request as ready for review October 22, 2026 11:15
@nkuba
nkuba added this pull request to stack #285 October 22, 2026 11:27
Base automatically changed from remove-netlify-cli to main October 22, 2026 11:33
@lukasz-zimnoch
lukasz-zimnoch merged commit 490ed98 into main Oct 22, 2026
9 checks passed
@lukasz-zimnoch
lukasz-zimnoch deleted the ci-node-26-from-22 branch October 22, 2026 11:34
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