This is an automated email from the ASF dual-hosted git repository.
kou pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-js.git
The following commit(s) were added to refs/heads/main by this push:
new fde7502 ci: update Node.js actions to 24 and test matrix to [20, 24]
(#411)
fde7502 is described below
commit fde7502009cc9962c91c203c9f22e1171c394580
Author: Kent Wu <[email protected]>
AuthorDate: Fri Mar 13 23:05:28 2026 -0400
ci: update Node.js actions to 24 and test matrix to [20, 24] (#411)
## What's Changed
Node.js 20 LTS reaches end-of-life on April 30, 2026.
This PR updates Node.js usage in CI to 24, and updates the test matrix
for node to [20, 24].
This ensures we test the current active LTS (24) and oldest maintenance
LTS (20).
See: https://nodejs.org/en/about/previous-releases#release-schedule
Closes #410
---
.env | 2 +-
.github/workflows/rc.yaml | 4 ++--
.github/workflows/test.yaml | 17 +++++++++++------
3 files changed, 14 insertions(+), 9 deletions(-)
diff --git a/.env b/.env
index b339ad8..2e16546 100644
--- a/.env
+++ b/.env
@@ -37,4 +37,4 @@ ARCH=amd64
DEBIAN_CODE_NAME=bookworm
# Default versions for various dependencies
-NODE=20
+NODE=24
diff --git a/.github/workflows/rc.yaml b/.github/workflows/rc.yaml
index c18ed0e..05fdeba 100644
--- a/.github/workflows/rc.yaml
+++ b/.github/workflows/rc.yaml
@@ -103,7 +103,7 @@ jobs:
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f #
v6.3.0
with:
cache: npm
- node-version: 20
+ node-version: 24
- name: Install dependencies
run: |
npm ci
@@ -166,7 +166,7 @@ jobs:
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f #
v6.3.0
with:
cache: npm
- node-version: 20
+ node-version: 24
- name: Install dependencies
run: |
npm ci
diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml
index 6faaee8..ff97ce1 100644
--- a/.github/workflows/test.yaml
+++ b/.github/workflows/test.yaml
@@ -46,7 +46,7 @@ jobs:
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f #
v6.3.0
with:
cache: npm
- node-version: 20
+ node-version: 24
- name: Install ESLint dependencies
run: |
npm ci
@@ -71,19 +71,24 @@ jobs:
pre-commit run --show-diff-on-failure --color=always --all-files
docker:
- name: Debian Node.js 20
+ name: Debian Node.js ${{ matrix.node }}
runs-on: ubuntu-latest
timeout-minutes: 60
+ strategy:
+ fail-fast: false
+ matrix:
+ node: [20, 24]
env:
DOCKER_VOLUME_PREFIX: .docker/
+ NODE: ${{ matrix.node }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd #
v6.0.2
- name: Cache
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
with:
path: .docker
- key: jest-docker-${{ hashFiles('src/**/*.ts', 'test/**/*.ts',
'package-lock.json') }}
- restore-keys: jest-docker-
+ key: jest-docker-${{ matrix.node }}-${{ hashFiles('src/**/*.ts',
'test/**/*.ts', 'package-lock.json') }}
+ restore-keys: jest-docker-${{ matrix.node }}-
- name: Run
run: |
docker compose run debian
@@ -95,7 +100,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- node: [20]
+ node: [20, 24]
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd #
v6.0.2
- name: Cache
@@ -121,7 +126,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- node: [20]
+ node: [20, 24]
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd #
v6.0.2
- name: Cache