From 2209e91ff3d394eddb87e0f67f92cd7dbfc4f0f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikl=C3=B3s=20Fazekas?= Date: Wed, 29 Jul 2026 06:45:16 +0200 Subject: [PATCH] chore: bump Node to 24 LTS, unify CI on .nvmrc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Node 20 has been EOL since April 2026, and .nvmrc (20.19.0) was already too old for react-native 0.86 — six CI jobs worked around it with their own node-version: 22 pins. Bump .nvmrc to v24.18.0 (active LTS) and point those jobs back at .nvmrc so there is a single source of truth again. Verified under Node 24: yarn install, typecheck, lint, and the full jest suite. Also unblocks running TypeScript scripts directly with node (>=22.18 strips types by default), reducing the need for alternate runtimes. --- .github/workflows/ci.yml | 13 ++++++------- .nvmrc | 2 +- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 799e0bc7..f5e76878 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -116,7 +116,7 @@ jobs: if: steps.build-cache-check.outputs.cache-hit != 'true' uses: actions/setup-node@v4 with: - node-version: 22 + node-version-file: .nvmrc - name: Install JDK if: steps.build-cache-check.outputs.cache-hit != 'true' @@ -199,13 +199,12 @@ jobs: key: ${{ runner.os }}-ios-build-expo57-${{ env.XCODE_VERSION }}-${{ hashFiles('package.json', 'yarn.lock', 'ios/**', 'nitrogen/generated/ios/**', '*.podspec', 'src/specs/*.nitro.ts', 'expo57-example/package.json', 'expo57-example/app.json', 'expo57-example/app.config.js', 'expo57-example/assets/**', 'expo57-example/app/**', 'expo57-example/babel.config.js', 'expo57-example/metro.config.js') }} lookup-only: true - # react-native 0.86 requires node ^20.19.4; .nvmrc (20.19.0) is too old # for expo prebuild/codegen, so override node here only. - name: Use Node 22 if: steps.build-cache-check.outputs.cache-hit != 'true' uses: actions/setup-node@v4 with: - node-version: 22 + node-version-file: .nvmrc - name: Use appropriate Xcode version if: steps.build-cache-check.outputs.cache-hit != 'true' @@ -291,7 +290,7 @@ jobs: - name: Use Node 22 uses: actions/setup-node@v4 with: - node-version: 22 + node-version-file: .nvmrc - name: Use appropriate Xcode version uses: maxim-lobanov/setup-xcode@v1 @@ -525,7 +524,7 @@ jobs: - name: Use Node 22 uses: actions/setup-node@v4 with: - node-version: 22 + node-version-file: .nvmrc - name: Install JDK uses: actions/setup-java@v4 @@ -627,7 +626,7 @@ jobs: - name: Use Node 22 uses: actions/setup-node@v4 with: - node-version: 22 + node-version-file: .nvmrc - name: Use appropriate Xcode version uses: maxim-lobanov/setup-xcode@v1 @@ -861,7 +860,7 @@ jobs: - name: Use Node 22 uses: actions/setup-node@v4 with: - node-version: 22 + node-version-file: .nvmrc - name: Install JDK uses: actions/setup-java@v4 diff --git a/.nvmrc b/.nvmrc index 5f53e875..5bcf9c6e 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v20.19.0 +v24.18.0