Skip to content

Commit

Permalink
Update Node.js by adding hack to fix Storybook
Browse files Browse the repository at this point in the history
  • Loading branch information
ai committed Jan 12, 2025
1 parent ab18a31 commit c8857e4
Show file tree
Hide file tree
Showing 13 changed files with 50 additions and 58 deletions.
6 changes: 3 additions & 3 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ FROM docker.io/ubuntu:24.04

ARG TARGETARCH

ENV NODE_VERSION 22.11.0
ENV NODE_VERSION 22.13.0
ENV PNPM_VERSION 10.0.0

ENV NODE_CHECKSUM_ARM64 27453f7a0dd6b9e6738f1f6ea6a09b102ec7aa484de1e39d6a1c3608ad47aa6a
ENV NODE_CHECKSUM_ARM64 e0cc088cb4fb2e945d3d5c416c601e1101a15f73e0f024c9529b964d9f6dce5b
ENV PNPM_CHECKSUM_ARM64 9bb1b569890eee8a7f535fadda6f9a78ffeb818a780b8c591e92478089eafafd
ENV NODE_CHECKSUM_X64 4f862bab52039835efbe613b532238b6e4dde98d139a34e6923193e073438b13
ENV NODE_CHECKSUM_X64 9a33e89093a0d946c54781dcb3ccab4ccf7538a7135286528ca41ca055e9b38f
ENV PNPM_CHECKSUM_X64 e1025c55ae220c66a980272ecb343c4860b129687e4e1c41bc5f343ee127d455

RUN apt-get update \
Expand Down
2 changes: 1 addition & 1 deletion .node-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
22.11.0
22.13.0
2 changes: 1 addition & 1 deletion api/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"private": true,
"type": "module",
"engines": {
"node": "^22.11.0",
"node": "^22.13.0",
"pnpm": "^10.0.0"
},
"exports": {
Expand Down
2 changes: 1 addition & 1 deletion core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"private": true,
"type": "module",
"engines": {
"node": "^22.11.0",
"node": "^22.13.0",
"pnpm": "^10.0.0"
},
"scripts": {
Expand Down
2 changes: 1 addition & 1 deletion extension/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"private": true,
"type": "module",
"engines": {
"node": "^22.11.0",
"node": "^22.13.0",
"pnpm": "^10.0.0"
},
"scripts": {
Expand Down
2 changes: 1 addition & 1 deletion loader-tests/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"private": true,
"type": "module",
"engines": {
"node": "^22.11.0",
"node": "^22.13.0",
"pnpm": "^10.0.0"
},
"scripts": {
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"private": true,
"type": "module",
"engines": {
"node": "^22.11.0",
"node": "^22.13.0",
"pnpm": "^10.0.0"
},
"packageManager": "[email protected]",
Expand Down
4 changes: 2 additions & 2 deletions proxy/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# syntax=docker/dockerfile:1.6
FROM registry.access.redhat.com/ubi9/ubi:9.4 as builder

ENV NODE_VERSION 22.11.0
ENV NODE_CHECKSUM sha256:4f862bab52039835efbe613b532238b6e4dde98d139a34e6923193e073438b13
ENV NODE_VERSION 22.13.0
ENV NODE_CHECKSUM sha256:9a33e89093a0d946c54781dcb3ccab4ccf7538a7135286528ca41ca055e9b38f

ADD --checksum=$NODE_CHECKSUM https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.gz /node.tar.gz
RUN tar --remove-files -C /usr/local/ -xz --strip-components=1 -f /node.tar.gz
Expand Down
2 changes: 1 addition & 1 deletion proxy/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"private": true,
"type": "module",
"engines": {
"node": "^22.11.0",
"node": "^22.13.0",
"pnpm": "^10.0.0"
},
"exports": {
Expand Down
72 changes: 32 additions & 40 deletions scripts/update-env.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,17 +30,17 @@ async function getLatestPnpmVersion(): Promise<string> {
return data.tag_name.slice(1)
}

// async function getNodeSha256(version: string): Promise<Architectures> {
// let response = await fetch(
// `https://nodejs.org/dist/v${version}/SHASUMS256.txt`
// )
// let data = await response.text()
// let lines = data.split('\n')
// return {
// arm64: lines.find(i => i.endsWith('-linux-arm64.tar.gz'))!.split(' ')[0]!,
// x64: lines.find(i => i.endsWith('-linux-x64.tar.gz'))!.split(' ')[0]!
// }
// }
async function getNodeSha256(version: string): Promise<Architectures> {
let response = await fetch(
`https://nodejs.org/dist/v${version}/SHASUMS256.txt`
)
let data = await response.text()
let lines = data.split('\n')
return {
arm64: lines.find(i => i.endsWith('-linux-arm64.tar.gz'))!.split(' ')[0]!,
x64: lines.find(i => i.endsWith('-linux-x64.tar.gz'))!.split(' ')[0]!
}
}

async function getPnpmSha256(
version: string,
Expand Down Expand Up @@ -68,14 +68,14 @@ function updatePackages(cb: (content: string) => string): void {
}
}

// function updateProjectDockerfiles(cb: (content: string) => string): void {
// let files = globSync(['**/Dockerfile', '.devcontainer/Dockerfile'])
// for (let file of files) {
// let content = read(file)
// let updated = cb(content)
// writeFileSync(file, updated)
// }
// }
function updateProjectDockerfiles(cb: (content: string) => string): void {
let files = globSync(['**/Dockerfile', '.devcontainer/Dockerfile'])
for (let file of files) {
let content = read(file)
let updated = cb(content)
writeFileSync(file, updated)
}
}

function printUpdate(tool: string, prev: string, next: string): void {
process.stderr.write(
Expand Down Expand Up @@ -120,32 +120,24 @@ let latestNode = await getLatestNodeVersion(
process.argv[2] ?? currentNode.split('.')[0]!
)
let latestPnpm = await getLatestPnpmVersion()
latestPnpm = '10.0.0'

if (currentNode !== latestNode) {
// printUpdate('Node.js', currentNode, latestNode)
// let checksums = await getNodeSha256(latestNode)
// dockerfile = replaceVersionEnv(dockerfile, 'NODE', latestNode, checksums)

// Until https://github.com/storybookjs/addon-svelte-csf/issues/229
// will be fixed, we can’t update Node.js
process.stderr.write(
styleText(
'yellow',
`Skipping Node.js ${latestNode} update due to Storybook issue\n`
)
)
printUpdate('Node.js', currentNode, latestNode)
let checksums = await getNodeSha256(latestNode)
dockerfile = replaceVersionEnv(dockerfile, 'NODE', latestNode, checksums)

// writeFileSync(join(ROOT, '.devcontainer', 'Dockerfile'), dockerfile)
// writeFileSync(join(ROOT, '.node-version'), latestNode + '\n')
writeFileSync(join(ROOT, '.devcontainer', 'Dockerfile'), dockerfile)
writeFileSync(join(ROOT, '.node-version'), latestNode + '\n')

// updateProjectDockerfiles(projectDocker => {
// return replaceVersionEnv(projectDocker, 'NODE', latestNode, checksums)
// })
updateProjectDockerfiles(projectDocker => {
return replaceVersionEnv(projectDocker, 'NODE', latestNode, checksums)
})

// let minor = latestNode.split('.').slice(0, 2).join('.')
// if (currentNode.split('.').slice(0, 2).join('.') !== minor) {
// updatePackages(pkg => replaceKey(pkg, 'node', `^${minor}.0`))
// }
let minor = latestNode.split('.').slice(0, 2).join('.')
if (currentNode.split('.').slice(0, 2).join('.') !== minor) {
updatePackages(pkg => replaceKey(pkg, 'node', `^${minor}.0`))
}
}

if (currentPnpm !== latestPnpm) {
Expand Down
4 changes: 2 additions & 2 deletions server/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# syntax=docker/dockerfile:1.6
FROM registry.access.redhat.com/ubi9/ubi:9.4 as builder

ENV NODE_VERSION 22.11.0
ENV NODE_CHECKSUM sha256:4f862bab52039835efbe613b532238b6e4dde98d139a34e6923193e073438b13
ENV NODE_VERSION 22.13.0
ENV NODE_CHECKSUM sha256:9a33e89093a0d946c54781dcb3ccab4ccf7538a7135286528ca41ca055e9b38f

ADD --checksum=$NODE_CHECKSUM https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.gz /node.tar.gz
RUN tar --remove-files -C /usr/local/ -xz --strip-components=1 -f /node.tar.gz
Expand Down
2 changes: 1 addition & 1 deletion server/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"private": true,
"type": "module",
"engines": {
"node": "^22.11.0",
"node": "^22.13.0",
"pnpm": "^10.0.0"
},
"scripts": {
Expand Down
6 changes: 3 additions & 3 deletions web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,22 @@
"private": true,
"type": "module",
"engines": {
"node": "^22.11.0",
"node": "^22.13.0",
"pnpm": "^10.0.0"
},
"scripts": {
"test": "pnpm run /^test:/",
"build": "pnpm run /^build:/ && mv ./storybook-static ./dist/ui",
"start": "vite",
"visual": "storybook dev -p 6006 --no-open",
"visual": "NODE_OPTIONS='--no-experimental-require-module' storybook dev -p 6006 --no-open",
"production": "node --run build && ./scripts/run-image.sh",
"size": "node --run build:web && size-limit",
"test:unit": "pnpm bnt",
"test:names": "../scripts/tsnode ./scripts/check-names.ts",
"test:css": "stylelint **/*.css **/*.svelte",
"test:build": "node --run build && size-limit && ../scripts/tsnode ./scripts/check-css-props.ts",
"build:routes": "../scripts/tsnode ./scripts/export-routes.ts",
"build:visual": "NODE_ENV=test storybook build",
"build:visual": "NODE_OPTIONS='--no-experimental-require-module' NODE_ENV=test storybook build",
"build:web": "vite build && ../scripts/tsnode scripts/generate-csp.ts",
"format:stylelint": "stylelint --fix **/*.{css,svelte}",
"clean:build": "rm -rf dist"
Expand Down

0 comments on commit c8857e4

Please sign in to comment.