Repository navigation
devops: pin the Node.js major version of the driver in scripts/NODE_VERSION - #2038
Merged
Yury Semikhatsky (yury-s) merged 6 commits intoNov 3, 2026
Merged
Conversation
download_driver.sh used to pick the latest Node.js LTS at download time, so the same commit could assemble drivers with different Node.js binaries. Pin the version in scripts/NODE_VERSION; roll_driver.sh moves it to the latest LTS, the policy the upstream driver build script had.
…images scripts/NODE_VERSION holds the major version (26) and download_driver.sh downloads its latest release. roll_driver.sh moves the pin to the major version of the latest Node.js LTS (see upstream utils/build/update-playwright-node.mjs).
roll_driver.sh no longer moves NODE_VERSION. It always runs download_driver.sh, which downloads the latest release of the pinned major version, even when the driver version is unchanged.
Fetch https://nodejs.org/dist/latest-v<major>.x/SHASUMS256.txt through the download() helper instead of parsing the whole release index with node, so the lookup gets the same retries and wget fallback as the archives. Shorten the help text and keep AGENTS.md unchanged.
Dmitry Gozman (dgozman)
approved these changes
Nov 3, 2026
| NODE_MAJOR_VERSION=$(head -1 ./NODE_VERSION) | ||
| NODE_VERSION=$(curl -fsSL "https://nodejs.org/dist/index.json" \ | ||
| | node -e "let s='';process.stdin.on('data',d=>s+=d).on('end',()=>console.log(JSON.parse(s).find(r=>r.lts).version.slice(1)))") | ||
| | node -e "let s='';process.stdin.on('data',d=>s+=d).on('end',()=>console.log((JSON.parse(s).find(r=>r.version.startsWith('v$NODE_MAJOR_VERSION.'))||{version:'v'}).version.slice(1)))") |
Contributor
There was a problem hiding this comment.
If we can make this one more readable, that would be great! Like, fetch inside a node script maybe? Make it multiline 😄
Member
Author
There was a problem hiding this comment.
Replaced the one-liner: the script now downloads https://nodejs.org/dist/latest-v<major>.x/SHASUMS256.txt through the existing download() helper and takes the version from the first file name with a sed capture group, with a sample line in a comment. That drops the node -e call and the full release index entirely.
Yury Semikhatsky (yury-s)
merged commit Nov 3, 2026
bc1337e
into
microsoft:main
18 of 21 checks passed
Yury Semikhatsky (yury-s)
added a commit
that referenced
this pull request
Nov 4, 2026
…er in scripts/NODE_VERSION
Yury Semikhatsky (yury-s)
added a commit
that referenced
this pull request
Nov 5, 2026
…er in scripts/NODE_VERSION
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.
download_driver.shpicked the latest Node.js LTS at download time, so a new LTS major version could reach the driver without a commit.scripts/NODE_VERSION(26) and bump it manually, likeARG NODE_VERSIONin the upstream Docker images.download_driver.shreads the latest release of that major version fromhttps://nodejs.org/dist/latest-v<major>.x/SHASUMS256.txt.roll_driver.shalways runsdownload_driver.sh, so a roll picks up the latest release of the pinned major version even when the driver version is unchanged.libatomic1in the Docker images: the Node.js Linux binaries link against it since Node.js 25, and the jammy and noble images failed withlibatomic.so.1: cannot open shared object file.NODE_VERSIONchanges, and mention the pin in the contributor docs.