diff --git a/.github/WORKFLOWS.md b/.github/WORKFLOWS.md index ec82adfbfd3..4c5314ea7d6 100644 --- a/.github/WORKFLOWS.md +++ b/.github/WORKFLOWS.md @@ -393,8 +393,8 @@ Runs on push to `master` or `1.x`: ``` Push to master/1.x ├─ build-github (populate cache) -├─ unit-test (matrix: Node 22.x, 24.16.0, 26.x) -│ └─ Coverage only on 24.16.0 +├─ unit-test (matrix: Node 22.23.2, 24.18.1) +│ └─ Coverage only on 24.18.1 ├─ lint └─ notify-on-failure (Slack #alerts-build) ``` @@ -454,7 +454,7 @@ Composite actions in `.github/actions/`: ```yaml inputs: - node-version: # default: '24.16.0' + node-version: # default: '24.18.1' enable-docker-cache: # default: 'false' (Blacksmith Buildx) build-command: # default: 'pnpm build' ``` diff --git a/.github/actions/setup-nodejs/action.yml b/.github/actions/setup-nodejs/action.yml index 8df1ad86ede..39a88ccea1b 100644 --- a/.github/actions/setup-nodejs/action.yml +++ b/.github/actions/setup-nodejs/action.yml @@ -7,9 +7,9 @@ description: 'Configures Node.js with pnpm, installs Aikido SafeChain for supply inputs: node-version: - description: 'Node.js version to use. Pinned to 24.18.0 by default for reproducible builds.' + description: 'Node.js version to use. Pinned to 24.18.1 by default for reproducible builds.' required: false - default: '24.18.0' + default: '24.18.1' enable-docker-cache: description: 'Whether to set up Blacksmith Buildx for Docker layer caching (Blacksmith runners only).' required: false diff --git a/.github/workflows/build-base-image.yml b/.github/workflows/build-base-image.yml index 257edd3af53..00fdf46825f 100644 --- a/.github/workflows/build-base-image.yml +++ b/.github/workflows/build-base-image.yml @@ -30,7 +30,7 @@ jobs: # While we're on alpine 3.22 awaiting NODE-4184 (graphicsmagick → sharp # migration that unblocks 3.23), Node 26 base builds can't succeed. # Restore '26' to this matrix once 3.23 is back. - node_version: ['22', '24.18.0'] + node_version: ['22', '24.18.1'] steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 diff --git a/.github/workflows/ci-master.yml b/.github/workflows/ci-master.yml index b40842ce5ed..1a6b7f66719 100644 --- a/.github/workflows/ci-master.yml +++ b/.github/workflows/ci-master.yml @@ -30,11 +30,11 @@ jobs: strategy: fail-fast: false matrix: - node-version: [22.22.3, 24.18.0] + node-version: [22.23.2, 24.18.1] with: ref: ${{ github.sha }} nodeVersion: ${{ matrix.node-version }} - collectCoverage: ${{ matrix.node-version == '24.18.0' }} + collectCoverage: ${{ matrix.node-version == '24.18.1' }} secrets: inherit lint: diff --git a/.github/workflows/docker-build-push.yml b/.github/workflows/docker-build-push.yml index 13cd3ca04d6..c54e8c58496 100644 --- a/.github/workflows/docker-build-push.yml +++ b/.github/workflows/docker-build-push.yml @@ -8,7 +8,7 @@ run-name: "${{ github.event_name == 'workflow_dispatch' && format('Docker: Build env: NODE_OPTIONS: '--max-old-space-size=7168' - NODE_VERSION: '24.16.0' + NODE_VERSION: '24.18.1' on: schedule: diff --git a/.github/workflows/mutation-health-nightly.yml b/.github/workflows/mutation-health-nightly.yml index 120bb555897..b44ece40f00 100644 --- a/.github/workflows/mutation-health-nightly.yml +++ b/.github/workflows/mutation-health-nightly.yml @@ -59,7 +59,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: - node-version: 24.18.0 + node-version: 24.18.1 - name: Fetch read-all live ledger from BigQuery # Read-all (no ?package= param): one curl returns every row across diff --git a/.github/workflows/release-push-to-channel.yml b/.github/workflows/release-push-to-channel.yml index b433aad49c2..16717a15a47 100644 --- a/.github/workflows/release-push-to-channel.yml +++ b/.github/workflows/release-push-to-channel.yml @@ -76,7 +76,7 @@ jobs: steps: - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: - node-version: 24.18.0 + node-version: 24.18.1 # Remove after https://github.com/npm/cli/issues/8547 gets resolved - run: echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc diff --git a/.github/workflows/release-standalone-package.yml b/.github/workflows/release-standalone-package.yml index a1a53b67919..bacd6306f07 100644 --- a/.github/workflows/release-standalone-package.yml +++ b/.github/workflows/release-standalone-package.yml @@ -67,7 +67,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: - node-version: '24.18.0' + node-version: '24.18.1' # A version bump only edits one package.json, so no workspace install/build # is needed. `pnpm ls -r --only-projects` reads the workspace config directly. diff --git a/.github/workflows/test-linting-reusable.yml b/.github/workflows/test-linting-reusable.yml index e19ee67a0aa..87d85ec3b65 100644 --- a/.github/workflows/test-linting-reusable.yml +++ b/.github/workflows/test-linting-reusable.yml @@ -12,7 +12,7 @@ on: description: Version of node to use. required: false type: string - default: 24.18.0 + default: 24.18.1 env: NODE_OPTIONS: --max-old-space-size=7168 diff --git a/.github/workflows/test-unit-reusable.yml b/.github/workflows/test-unit-reusable.yml index 799fef5511e..8adff5314d3 100644 --- a/.github/workflows/test-unit-reusable.yml +++ b/.github/workflows/test-unit-reusable.yml @@ -12,7 +12,7 @@ on: description: Version of node to use. required: false type: string - default: 24.18.0 + default: 24.18.1 collectCoverage: required: false default: false diff --git a/.github/workflows/test-workflow-scripts-reusable.yml b/.github/workflows/test-workflow-scripts-reusable.yml index e1794442f23..6c91c2c745e 100644 --- a/.github/workflows/test-workflow-scripts-reusable.yml +++ b/.github/workflows/test-workflow-scripts-reusable.yml @@ -12,7 +12,7 @@ on: description: Version of node to use. required: false type: string - default: 24.18.0 + default: 24.18.1 env: NODE_OPTIONS: --max-old-space-size=7168 diff --git a/docker/images/engine/Dockerfile b/docker/images/engine/Dockerfile index 01479b0613e..8c1f835486f 100644 --- a/docker/images/engine/Dockerfile +++ b/docker/images/engine/Dockerfile @@ -1,6 +1,6 @@ -ARG NODE_VERSION=24.16.0 +ARG NODE_VERSION=24.18.1 -FROM node:${NODE_VERSION}-alpine3.22 +FROM node:${NODE_VERSION}-alpine3.24 ENV NODE_ENV=production diff --git a/docker/images/n8n-base/Dockerfile b/docker/images/n8n-base/Dockerfile index d6560e97ad7..e91fddd5474 100644 --- a/docker/images/n8n-base/Dockerfile +++ b/docker/images/n8n-base/Dockerfile @@ -1,7 +1,7 @@ # Pinned to a multi-arch index digest (linux/amd64 + linux/arm64) for reproducible builds. # The tag is the human-readable version; Docker resolves by the digest. Bump the tag and # digest together when updating the base image. -FROM dhi.io/node:24.18.0-alpine3.24-dev@sha256:d508453231109fbe96a39045ecc794ac18f8b99ca218a0806833d65bb2750e03 +FROM dhi.io/node:24.18.1-alpine3.24-dev@sha256:074b5aa92e1ce74cd575214211bbcb8d1550710aec59558da734a67d84d31679 # Install all dependencies in a single layer to minimize image size RUN apk add --no-cache busybox-binsh && \ diff --git a/docker/images/n8n/Dockerfile b/docker/images/n8n/Dockerfile index d86bd04ae13..799364ac63f 100644 --- a/docker/images/n8n/Dockerfile +++ b/docker/images/n8n/Dockerfile @@ -1,11 +1,11 @@ -ARG NODE_VERSION=24.18.0 +ARG NODE_VERSION=24.18.1 ARG N8N_VERSION=snapshot # Builder stage exists because the runtime base image has no toolchain. # Pinned to multi-arch index digest (linux/amd64 + linux/arm64) for reproducible builds. # Bump the digest together with the tag when updating the base image. -# Digest pins to node:24.18.0-alpine3.24 (Node 24.18.0, Alpine 3.24). -FROM node:24.18.0-alpine3.24@sha256:a0b9bf06e4e6193cf7a0f58816cc935ff8c2a908f81e6f1a95432d679c54fbfd AS builder +# Digest pins to node:24.18.1-alpine3.24 (Node 24.18.1, Alpine 3.24). +FROM node:24.18.1-alpine3.24@sha256:f70403e87646dc51b45295f4b8b70cdad0b63d2297c4c9899119b03f7af7a6b3 AS builder COPY ./compiled /usr/local/lib/node_modules/n8n RUN apk add --no-cache python3 make g++ && \ cd /usr/local/lib/node_modules/n8n && \ @@ -28,8 +28,8 @@ RUN apk add --no-cache python3 make g++ && \ # base change, so a base rebuild does not reach this image until the digest is # manually re-pinned here. Bump the digest together with the tag whenever the base # image is intentionally updated. -# Digest pins to n8nio/base:24.18.0 (Node 24.18.0, Alpine 3.24). -FROM n8nio/base:24.18.0@sha256:29d9c11f55f02442276512592b439ebb2a1d1043c1339ad5cea4e56862520d22 +# Digest pins to n8nio/base:24.18.1 (Node 24.18.1, Alpine 3.24). +FROM n8nio/base:24.18.1@sha256:f7a23e449f093b8b203467919e969ca35d12ba959442aadc1f69bb174b160ad2 ARG N8N_VERSION ARG N8N_RELEASE_TYPE=dev diff --git a/docker/images/runners/Dockerfile b/docker/images/runners/Dockerfile index f44cf729c56..ac913fa04c4 100644 --- a/docker/images/runners/Dockerfile +++ b/docker/images/runners/Dockerfile @@ -1,10 +1,10 @@ -ARG NODE_VERSION=24.16.0 +ARG NODE_VERSION=24.18.1 ARG PYTHON_VERSION=3.13 # ============================================================================== # STAGE 1: JavaScript runner (@n8n/task-runner) artifact from CI # ============================================================================== -FROM node:${NODE_VERSION}-alpine3.22 AS javascript-runner-builder +FROM node:${NODE_VERSION}-alpine3.24 AS javascript-runner-builder COPY ./dist/task-runner-javascript /app/task-runner-javascript WORKDIR /app/task-runner-javascript @@ -112,7 +112,7 @@ RUN set -e; \ # ============================================================================== # STAGE 4: Node alpine base for JS task runner # ============================================================================== -FROM node:${NODE_VERSION}-alpine3.22 AS node-alpine +FROM node:${NODE_VERSION}-alpine3.24 AS node-alpine # ============================================================================== # STAGE 5: Runtime diff --git a/docker/images/runners/Dockerfile.distroless b/docker/images/runners/Dockerfile.distroless index ecd77f5acab..036673a5059 100644 --- a/docker/images/runners/Dockerfile.distroless +++ b/docker/images/runners/Dockerfile.distroless @@ -12,7 +12,7 @@ # - Uses distroless nonroot user (UID 65532) # ============================================================================== -ARG NODE_VERSION=24.16.0 +ARG NODE_VERSION=24.18.1 ARG PYTHON_VERSION=3.13 diff --git a/packages/@n8n/benchmark/Dockerfile b/packages/@n8n/benchmark/Dockerfile index b97f4fa1246..ac3218e25b0 100644 --- a/packages/@n8n/benchmark/Dockerfile +++ b/packages/@n8n/benchmark/Dockerfile @@ -1,5 +1,5 @@ # syntax=docker/dockerfile:1 -FROM node:24.18.0 AS base +FROM node:24.18.1 AS base # Install required dependencies RUN apt-get update && apt-get install -y gnupg2 curl