Skip to content

ci: Run PR pipeline on Node 26 - #34032

Merged
ivov merged 22 commits into
masterfrom
node-26-ci
Aug 14, 2026
Merged

ci: Run PR pipeline on Node 26#34032
ivov merged 22 commits into
masterfrom
node-26-ci

Conversation

@ivov

@ivov ivov commented Jul 11, 2026

Copy link
Copy Markdown
Member

Summary

This PR

  • switches the PR pipeline (unit, integration, lint, builds) from Node 24 to 26
  • publishes n8nio/base:26.5.1 tag alongside 22 and 24.

e2e still uses the Node 24 image.

Re: Kafka - Confluent ships no Node 26 prebuilds, so CI installs skip building it. The base now carries librdkafka so the follow-up can link the binding against it at image build time.

Upcoming PRs

  1. Runtime stage of node-pc becomes FROM n8nio/base:26.5.1 (once published).
  2. n8n image moves to Node 26 (builder and base), including the Kafka binding rebuilt against the base's librdkafka. This will switch e2e and released images to Node 26.
  3. Every release additionally ships a sibling -pc image built on the pointer-compressed Node.

1 and 2 are independent and both unblock once this PR #34032 merges and the bases publish. 3 needs 1 and 2.

Related Linear tickets, Github issues, and Community forum posts

https://app.notion.com/p/n8n/Halving-memory-usage-via-pointer-compression-3ac5b6e0c94f8005af87e93a9f837b53

Review / Merge checklist

  • PR title and summary are descriptive. (conventions)
  • Docs updated or follow-up ticket created.
  • Tests included.
  • PR Labeled with Backport to Beta, Backport to Stable, or Backport to v1 (if the PR is an urgent fix that needs to be backported)

@n8n-assistant

n8n-assistant Bot commented Jul 11, 2026

Copy link
Copy Markdown
Contributor

PR review overview

Based on ownership of the 23 changed files in this PR:

Ownership Files owned Share Source code Test files Misc
@n8n-io/qa-dx 9 39% +83 / -20 +0 / -0 +0 / -0
@n8n-io/catalysts 6 26% +4 / -4 +1 / -2 +9 / -9
@n8n-io/instance-ai 3 13% +1 / -1 +2 / -2 +0 / -0
Other teams 5 22% +4 / -5 +1 / -0 +0 / -0
Total 23 100% +92 / -30 +4 / -4 +9 / -9

@n8n-assistant n8n-assistant Bot added the n8n team Authored by the n8n team label Jul 11, 2026
@codecov

codecov Bot commented Jul 11, 2026

Copy link
Copy Markdown

Bundle Report

Changes will increase total bundle size by 20.11kB (0.04%) ⬆️. This is within the configured threshold ✅

Detailed changes
Bundle name Size Change
editor-ui-esm 53.09MB 20.11kB (0.04%) ⬆️

Affected Assets, Files, and Routes:

view changes for bundle: editor-ui-esm

Assets Changed:

Asset Name Size Change Total Size Change (%)
assets/src-*.js 233 bytes 37.14kB 0.63%
assets/src-*.js 997 bytes 3.28MB 0.03%
assets/worker-*.js -3.19MB 18.44kB -99.43%
assets/worker-*.js 3.19MB 3.21MB 17320.02% ⚠️
assets/_MapCache-*.js 785 bytes 807.81kB 0.1%
assets/AgentBuilderView-*.js 10.56kB 752.74kB 1.42%
assets/InstanceAiThreadView-*.js 2.66kB 499.65kB 0.54%
assets/AgentBuilderView-*.css 139 bytes 231.56kB 0.06%
assets/WorkflowsView-*.js 235 bytes 206.76kB 0.11%
assets/router-*.js 250 bytes 164.92kB 0.15%
assets/instanceAi.store-*.js 882 bytes 84.83kB 1.05%
assets/constants-*.js 9.92kB 12.69kB 358.55% ⚠️
assets/constants-*.js 2.12kB 3.11kB 215.2% ⚠️
assets/constants-*.js 780 bytes 987 bytes 376.81% ⚠️
assets/constants-*.js -44.32kB 207 bytes -99.54%
assets/constants-*.js (New) 44.53kB 44.53kB 100.0% 🚀
assets/WorkflowBuilderUnavailableNotice-*.js 459 bytes 36.64kB 1.27%
assets/InstanceAiView-*.js 125 bytes 35.02kB 0.36%
assets/useInstanceAiHandoff-*.js 1.7kB 12.37kB 15.94% ⚠️
assets/CreditWarningBanner-*.js 242 bytes 11.11kB 2.23%
assets/constants-*.css (New) 7.11kB 7.11kB 100.0% 🚀
assets/thread-*.js 233 bytes 6.84kB 3.53%
assets/AttachmentPreview-*.js (Deleted) -12.43kB 0 bytes -100.0% 🗑️
assets/AttachmentPreview-*.css (Deleted) -7.11kB 0 bytes -100.0% 🗑️

@codecov

codecov Bot commented Jul 11, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

ivov added 3 commits August 11, 2026 12:15
# Conflicts:
#	.github/actions/setup-nodejs/action.yml
#	.github/workflows/test-linting-reusable.yml
#	.github/workflows/test-unit-reusable.yml
#	.github/workflows/test-workflow-scripts-reusable.yml
#	package.json
#	pnpm-lock.yaml
#	pnpm-workspace.yaml
@ivov

ivov commented Aug 11, 2026

Copy link
Copy Markdown
Member Author

@github-actions

github-actions Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Instance AI Discovery Eval ✅

Branch: node-26-ci · Commit: 766e753359f9d77913ab8d6caf172dbd92651fe5

Eval output

> @n8n/instance-ai@1.20.0 eval:discovery /home/runner/_work/n8n/n8n/packages/@n8n/instance-ai
> tsx evaluations/discovery/cli.ts --trials 3 --fail-on-zero-pass

Running 11 discovery scenario(s) × 3 trial(s) (model: anthropic/claude-sonnet-4-6, concurrency: 3).

▸ config-evals-skill-loading ... (node:5088) [DEP0205] DeprecationWarning: `module.register()` is deprecated. Use `module.registerHooks()` instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
✓ 3/3 passed (100%)
▸ data-table-natural-list-skill-loading ... ✓ 3/3 passed (100%)
▸ data-table-skill-loading ... ✓ 3/3 passed (100%)
▸ data-table-workflow-skill-loading ... ✓ 3/3 passed (100%)
▸ google-oauth-credential-setup ... ✓ 3/3 passed (100%)
▸ http-node-config-no-browser ... ✓ 3/3 passed (100%)
▸ oauth-with-computer-use-disabled ... ✓ 3/3 passed (100%)
▸ screenshot-dashboard ... ✓ 3/3 passed (100%)
▸ slack-oauth-credential-setup ... ✓ 3/3 passed (100%)
▸ workflow-builder-no-agent-builder-leak ... ✓ 3/3 passed (100%)
▸ workflow-builder-no-credential-ask ... ✓ 3/3 passed (100%)

=== Summary ===
Scenarios: 11/11 above threshold (67%)
Trials: 33/33 passed (100%)
Total time: 1095.8s

@ivov
ivov marked this pull request as ready for review August 13, 2026 10:58

set +o pipefail
timeout --kill-after=30s 300s $INSTALL_COMMAND \
timeout --kill-after=30s 600s $INSTALL_COMMAND \

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No sure if I got unlucky but on cold cache downloading and scanning the ~3,400 packages alone ate >300s

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Possibly. Can't remember this timing out in... ever?

# 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.1']

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There used to be a bug here, matrix passed node_version as a build arg, but thedDockerfile never used it, its FROM was hardcoded to the Node 24 DHI base

Comment on lines +34 to +35
- node_version: '22'
dhi_ref: dhi.io/node:22.23.2-alpine3.24-dev@sha256:a6ac21cfbc4bb746c1cfc6cf1501ec13c961ae71558ff2ac7e021caaaf91a224

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or drop 22?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As 22 is in maintenance mode, I'd possibly keep it. Maybe drop it with v3?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd favor dropping it:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Matsuuu I increased the min engine version to 24 at least and removed 22 from the CI matrix because with upgrading isolated-vm it would break once we enable isolated expressions by default.

I did leave this image untouched, because I have no idea who's using it. I'm not sure if we are using it at all.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay a lot of fair points. Let's just rid of it then 👍🏼

Matsuuu
Matsuuu previously approved these changes Aug 13, 2026
@chromatic-com

chromatic-com Bot commented Aug 13, 2026

Copy link
Copy Markdown

Tip

All tests passed and all changes approved!

🟢 UI Tests: n8n: 491 tests unchanged
🟢 UI Review: n8n: 491 stories published -- no changes
Storybook icon Storybook Publish: n8n: 491 stories published

isolated-vm v7 has no Node 22 build, so expressions, Merge SQL mode,
and agents would break at runtime on Node 22. Raise engines to >=24
and test 24 + 26 on master.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@ivov
ivov added this pull request to the merge queue Aug 14, 2026
Merged via the queue into master with commit c0acde4 Aug 14, 2026
122 of 124 checks passed
@ivov
ivov deleted the node-26-ci branch August 14, 2026 08:11
@n8n-assistant

n8n-assistant Bot commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

Got released with n8n@2.36.0

heymynameisrob pushed a commit that referenced this pull request Sep 1, 2026
Co-authored-by: Danny Martini <danny@n8n.io>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla-signed n8n team Authored by the n8n team Released

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants