Repository navigation
feat(docker): upgrade node runtime to 24.22.1 - #293
Open
zahin-mohammad wants to merge 2 commits into
Open
zahin-mohammad wants to merge 2 commits into
zahin-mohammad wants to merge 2 commits into
Conversation
Move the builder, production and integration-tests images, .nvmrc and the CI node-version pins from 22.23.4 to 24.22.1 with the re-resolved node:24.22.1-alpine digest, matching the Node 24 move in BitGoJS. Node 24 sizes its default heap at about 2.2 GB in the test container and ts-node compilation exhausts it, so the integration runner caps the heap explicitly with --max-old-space-size=3072. Ticket: WCN-3304 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Ticket: WCN-3304 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
zahin-mohammad
force-pushed
the
zahinmohammad/wcn-3304-advanced-wallets-node-24
branch
from
October 21, 2026 20:30
e7e77ad to
035ab5c
Compare
zahin-mohammad
marked this pull request as ready for review
October 21, 2026 21:28
danielpeng1
requested changes
Oct 21, 2026
danielpeng1
left a comment
Contributor
There was a problem hiding this comment.
Consider these two:
-
these workflows:
release-to-ghcr.yaml:33,69andaudit-api-spec.yaml:21,74still use Node'22'. Read the version from.nvmrcso they match the image and CI:node-version-file: .nvmrc
-
integration-tests.Dockerfile:27: use 4096 to match CI (build-and-test.yaml:181):NODE_OPTIONS=--max-old-space-size=4096 \
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Moves the runtime from Node 22.23.4 to 24.22.1, following the same move in BitGoJS (BitGo/BitGoJS#10023). This is a major-version change, separate from the 22.x security patch in #291.
Dockerfile(builder + production) andintegration-tests.Dockerfile(builder + runner):node:24.22.1-alpine@sha256:6a1c190e17215d844926b0677f4bf87273ff7d5e54db06d3b5b5863ab0b09a3d. The digest is the index digest fromdocker pull+docker inspect, the same method the Dockerfile's "To update" comment documents..nvmrcand the CInode-versionpins (pull_request.yaml,build-and-test.yaml):24.22.1.24.22.1 or higher.package.jsonengines(>=22.12.0) is unchanged: it is an install-compatibility floor, not a runtime selector.Warning: heap cap added to the integration image
On Node 24 the integration suite was OOM-killed (
docker inspectshowedOOMKilled=true); on Node 22 it passes. Node 24's default heap limit in the test container is about 2.2 GB, and memory climbs past 2 GB duringts-nodecompilation. With--max-old-space-size=1536or3072the suite passes. I setNODE_OPTIONS=--max-old-space-size=3072on the runner stage only. This hides rather than explains the growth, so it needs a decision: keep the cap, or investigate whyts-nodeallocates more on Node 24. The production image is unaffected.Verification
Run locally on the final commit (native arm64 Docker builds; amd64 emulation SIGKILLs the suite on this Mac for both Node versions):
node --versionisv24.22.1in both images.ALLOW_PLAINTEXT_KEY_PROVIDER=true). I did not observe a health endpoint response.npm run test:integrationin the runner image: 29 passing, twice in a row.npm test(unit suite) and lint. CI covers those, and CI's amd64 runners are the first test of the exact amd64 digest.Not covered: a production rollout. Deploy evidence (running
node --version, deployed digest, rollback criteria) still belongs to WCN-3713.Ticket: WCN-3304
🤖 Generated with Claude Code