diff --git a/.github/actions/setup-nodejs/action.yml b/.github/actions/setup-nodejs/action.yml index 877b015eb4a..b140eaef092 100644 --- a/.github/actions/setup-nodejs/action.yml +++ b/.github/actions/setup-nodejs/action.yml @@ -145,7 +145,10 @@ runs: shell: bash run: node .github/scripts/verify-safechain.mjs + # Confluent ships no Node 26 prebuilt and its vendored librdkafka cannot build + # inside node_modules: https://github.com/confluentinc/confluent-kafka-javascript/issues/397 - name: Skip Kafka native build (no Node 26 prebuilds) + if: ${{ startsWith(inputs.node-version, '26.') }} shell: bash run: | node -e " diff --git a/.github/workflows/docker-build-push.yml b/.github/workflows/docker-build-push.yml index 7e893f8dfc2..770d347a2f1 100644 --- a/.github/workflows/docker-build-push.yml +++ b/.github/workflows/docker-build-push.yml @@ -149,6 +149,8 @@ jobs: - name: Setup and Build uses: ./.github/actions/setup-nodejs with: + # The image copies native bindings from the host build, so both need the same Node. + node-version: ${{ env.NODE_VERSION }} build-command: pnpm build:n8n enable-docker-cache: 'true' env: @@ -175,7 +177,7 @@ jobs: ${{ needs.determine-build-context.outputs.push_to_docker == 'true' && '--include-docker' || '' }} echo "=== Generated Docker Tags ===" - cat "$GITHUB_OUTPUT" | grep "_tags=" | while IFS='=' read -r key value; do + grep "_tags=" "$GITHUB_OUTPUT" | while IFS='=' read -r key value; do echo "${key}: ${value%%,*}..." # Show first tag for brevity done diff --git a/.github/workflows/docker-build-smoke.yml b/.github/workflows/docker-build-smoke.yml index 655548376b9..7154045dbec 100644 --- a/.github/workflows/docker-build-smoke.yml +++ b/.github/workflows/docker-build-smoke.yml @@ -44,6 +44,9 @@ jobs: - name: Build full chain (no cache) uses: ./.github/actions/setup-nodejs with: + # Keep in sync with NODE_VERSION in docker/images/n8n/Dockerfile: the image + # copies native bindings from the host build. + node-version: '24.18.1' build-command: 'pnpm build:docker:clean' enable-docker-cache: true