diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dcca386faa..e0b12e9868 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,6 +24,12 @@ jobs: - NodeVersion: 24.11.x NodeVersionDisplayName: 24 OS: windows-latest + - NodeVersion: 26.7.x + NodeVersionDisplayName: 26 + OS: ubuntu-latest + - NodeVersion: 26.7.x + NodeVersionDisplayName: 26 + OS: windows-latest name: Node.js v${{ matrix.NodeVersionDisplayName }} (${{ matrix.OS }}) runs-on: ${{ matrix.OS }} env: @@ -73,6 +79,8 @@ jobs: - name: Rush retest (install-run-rush) run: node common/scripts/install-run-rush.js retest --verbose --production working-directory: repo-a + env: + NODE_OPTIONS: ${{ matrix.NodeVersionDisplayName == 26 && '--no-experimental-webstorage' || '' }} - name: Run package manager integration tests run: npm run test @@ -109,7 +117,11 @@ jobs: - name: Rush test (rush-lib) run: node ${{ github.workspace }}/repo-a/apps/rush/lib-commonjs/start-dev.js test --verbose --production --timeline working-directory: repo-b + env: + NODE_OPTIONS: ${{ matrix.NodeVersionDisplayName == 26 && '--no-experimental-webstorage' || '' }} - name: Rush test (rush-lib) again to verify build cache hits run: node ${{ github.workspace }}/repo-a/apps/rush/lib-commonjs/start-dev.js test --verbose --production --timeline working-directory: repo-b + env: + NODE_OPTIONS: ${{ matrix.NodeVersionDisplayName == 26 && '--no-experimental-webstorage' || '' }} diff --git a/common/changes/@microsoft/rush/node-26_2026-08-17-12-00.json b/common/changes/@microsoft/rush/node-26_2026-08-17-12-00.json new file mode 100644 index 0000000000..dc5b3d23a4 --- /dev/null +++ b/common/changes/@microsoft/rush/node-26_2026-08-17-12-00.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@microsoft/rush", + "comment": "Add support for Node 26.", + "type": "none" + } + ], + "packageName": "@microsoft/rush" +} diff --git a/common/config/azure-pipelines/templates/install-node.yaml b/common/config/azure-pipelines/templates/install-node.yaml index c7f782a991..a2ff74d718 100644 --- a/common/config/azure-pipelines/templates/install-node.yaml +++ b/common/config/azure-pipelines/templates/install-node.yaml @@ -1,7 +1,7 @@ parameters: - name: NodeMajorVersion type: number - default: 22 + default: 24 steps: - task: NodeTool@0 diff --git a/libraries/rush-lib/src/logic/NodeJsCompatibility.ts b/libraries/rush-lib/src/logic/NodeJsCompatibility.ts index b39d4a954b..d2f579be3d 100644 --- a/libraries/rush-lib/src/logic/NodeJsCompatibility.ts +++ b/libraries/rush-lib/src/logic/NodeJsCompatibility.ts @@ -17,7 +17,7 @@ import { RushConstants } from './RushConstants'; * LTS schedule: https://nodejs.org/en/about/releases/ * LTS versions: https://nodejs.org/en/download/releases/ */ -const UPCOMING_NODE_LTS_VERSION: number = 24; +const UPCOMING_NODE_LTS_VERSION: number = 26; const nodeVersion: string = process.versions.node; const nodeMajorVersion: number = semver.major(nodeVersion); diff --git a/rush.json b/rush.json index 47ed0bccf6..ae0adcfd3c 100644 --- a/rush.json +++ b/rush.json @@ -42,7 +42,7 @@ * LTS schedule: https://nodejs.org/en/about/releases/ * LTS versions: https://nodejs.org/en/download/releases/ */ - "nodeSupportedVersionRange": ">=20.9.0 <21.0.0 || >=22.12.0 <23.0.0 || >=24.11.1 <25.0.0", + "nodeSupportedVersionRange": ">=20.9.0 <21.0.0 || >=22.12.0 <23.0.0 || >=24.11.1 <25.0.0 || >=26.7.0 <27.0.0", /** * If the version check above fails, Rush will display a message showing the current