Add support for Node.js v26 prebuilds and remove EOL builds

This commit is contained in:
Mahesh Bandara Wijerathna
2026-05-23 04:44:43 +05:30
parent 40fb94ee97
commit 97835baa87
4 changed files with 36 additions and 12 deletions
+14 -2
View File
@@ -4,7 +4,8 @@ on:
workflow_dispatch:
env:
NODE_BUILD_CMD_LEGACY: npx --no-install prebuild -r node -t 20.0.0 -t 22.0.0 -t 24.0.0 --include-regex 'better_sqlite3.node$'
NODE_BUILD_CMD_LEGACY: npx --no-install prebuild -r node -t 22.0.0 -t 24.0.0 --include-regex 'better_sqlite3.node$'
NODE_BUILD_CMD_MODERN: npx --no-install prebuild -r node -t 26.0.0 --include-regex 'better_sqlite3.node$'
ELECTRON_BUILD_CMD_LEGACY: npx --no-install prebuild -r electron -t 29.0.0 -t 30.0.0 -t 31.0.0 -t 32.0.0 -t 33.0.0 -t 34.0.0 -t 35.0.0 -t 36.0.0 -t 37.0.0 -t 38.0.0 --include-regex 'better_sqlite3.node$'
ELECTRON_BUILD_CMD_MODERN: npx --no-install prebuild -r electron -t 39.0.0 -t 40.0.0 -t 41.0.0 --include-regex 'better_sqlite3.node$'
@@ -30,12 +31,15 @@ jobs:
run: brew install python-setuptools
- run: npm install --ignore-scripts
- run: ${{ env.NODE_BUILD_CMD_LEGACY }}
- run: ${{ env.NODE_BUILD_CMD_MODERN }}
- run: ${{ env.ELECTRON_BUILD_CMD_LEGACY }}
- run: ${{ env.ELECTRON_BUILD_CMD_MODERN }}
- if: matrix.os == 'windows-2022'
run: |
${{ env.NODE_BUILD_CMD_LEGACY }} --arch ia32
${{ env.NODE_BUILD_CMD_LEGACY }} --arch arm64
${{ env.NODE_BUILD_CMD_MODERN }} --arch ia32
${{ env.NODE_BUILD_CMD_MODERN }} --arch arm64
${{ env.ELECTRON_BUILD_CMD_LEGACY }} --arch ia32
${{ env.ELECTRON_BUILD_CMD_LEGACY }} --arch arm64
${{ env.ELECTRON_BUILD_CMD_MODERN }} --arch ia32
@@ -72,6 +76,7 @@ jobs:
${{ env.ELECTRON_BUILD_CMD_LEGACY }}
- if: matrix.generation == 'modern'
run: |
${{ env.NODE_BUILD_CMD_MODERN }}
${{ env.ELECTRON_BUILD_CMD_MODERN }}
prebuild-linux-armv7:
@@ -97,6 +102,12 @@ jobs:
cd /tmp/project && \
npm install --ignore-scripts && \
${{ env.NODE_BUILD_CMD_LEGACY }}"
- if: matrix.generation == 'modern'
run: |
docker run --rm -v $(pwd):/tmp/project --entrypoint /bin/sh --platform linux/arm/v7 ${{ matrix.image }} -c "\
cd /tmp/project && \
npm install --ignore-scripts && \
${{ env.NODE_BUILD_CMD_MODERN }}"
prebuild-alpine-linux:
strategy:
@@ -119,4 +130,5 @@ jobs:
apk add build-base git python3 py3-setuptools --update-cache && \
cd /tmp/project && \
npm install --ignore-scripts && \
${{ env.NODE_BUILD_CMD_LEGACY }}"
${{ env.NODE_BUILD_CMD_LEGACY }} && \
${{ env.NODE_BUILD_CMD_MODERN }}"
+14 -2
View File
@@ -6,7 +6,8 @@ on:
- published
env:
NODE_BUILD_CMD_LEGACY: npx --no-install prebuild -r node -t 20.0.0 -t 22.0.0 -t 24.0.0 --include-regex 'better_sqlite3.node$' -u ${{ secrets.GITHUB_TOKEN }}
NODE_BUILD_CMD_LEGACY: npx --no-install prebuild -r node -t 22.0.0 -t 24.0.0 --include-regex 'better_sqlite3.node$' -u ${{ secrets.GITHUB_TOKEN }}
NODE_BUILD_CMD_MODERN: npx --no-install prebuild -r node -t 26.0.0 --include-regex 'better_sqlite3.node$' -u ${{ secrets.GITHUB_TOKEN }}
ELECTRON_BUILD_CMD_LEGACY: npx --no-install prebuild -r electron -t 29.0.0 -t 30.0.0 -t 31.0.0 -t 32.0.0 -t 33.0.0 -t 34.0.0 -t 35.0.0 -t 36.0.0 -t 37.0.0 -t 38.0.0 --include-regex 'better_sqlite3.node$' -u ${{ secrets.GITHUB_TOKEN }}
ELECTRON_BUILD_CMD_MODERN: npx --no-install prebuild -r electron -t 39.0.0 -t 40.0.0 -t 41.0.0 --include-regex 'better_sqlite3.node$' -u ${{ secrets.GITHUB_TOKEN }}
@@ -32,12 +33,15 @@ jobs:
run: brew install python-setuptools
- run: npm install --ignore-scripts
- run: ${{ env.NODE_BUILD_CMD_LEGACY }}
- run: ${{ env.NODE_BUILD_CMD_MODERN }}
- run: ${{ env.ELECTRON_BUILD_CMD_LEGACY }}
- run: ${{ env.ELECTRON_BUILD_CMD_MODERN }}
- if: matrix.os == 'windows-2022'
run: |
${{ env.NODE_BUILD_CMD_LEGACY }} --arch ia32
${{ env.NODE_BUILD_CMD_LEGACY }} --arch arm64
${{ env.NODE_BUILD_CMD_MODERN }} --arch ia32
${{ env.NODE_BUILD_CMD_MODERN }} --arch arm64
${{ env.ELECTRON_BUILD_CMD_LEGACY }} --arch ia32
${{ env.ELECTRON_BUILD_CMD_LEGACY }} --arch arm64
${{ env.ELECTRON_BUILD_CMD_MODERN }} --arch ia32
@@ -74,6 +78,7 @@ jobs:
${{ env.ELECTRON_BUILD_CMD_LEGACY }}
- if: matrix.generation == 'modern'
run: |
${{ env.NODE_BUILD_CMD_MODERN }}
${{ env.ELECTRON_BUILD_CMD_MODERN }}
prebuild-linux-armv7:
@@ -99,6 +104,12 @@ jobs:
cd /tmp/project && \
npm install --ignore-scripts && \
${{ env.NODE_BUILD_CMD_LEGACY }}"
- if: matrix.generation == 'modern'
run: |
docker run --rm -v $(pwd):/tmp/project --entrypoint /bin/sh --platform linux/arm/v7 ${{ matrix.image }} -c "\
cd /tmp/project && \
npm install --ignore-scripts && \
${{ env.NODE_BUILD_CMD_MODERN }}"
prebuild-alpine-linux:
strategy:
@@ -121,4 +132,5 @@ jobs:
apk add build-base git python3 py3-setuptools --update-cache && \
cd /tmp/project && \
npm install --ignore-scripts && \
${{ env.NODE_BUILD_CMD_LEGACY }}"
${{ env.NODE_BUILD_CMD_LEGACY }} && \
${{ env.NODE_BUILD_CMD_MODERN }}"
+7 -7
View File
@@ -21,9 +21,9 @@ jobs:
- macos-15-intel
- windows-2022
node:
- 20
- 22
- 24
- 26
name: Testing Node ${{ matrix.node }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
steps:
@@ -53,9 +53,9 @@ jobs:
node -e "require('./lib/index.js')(':memory:').loadExtension('mod_spatialite').exec('SELECT InitSpatialMetaData();')"
test-alpine-linux:
name: Testing Node 20 on Alpine-Linux
name: Testing Node 22 on Alpine-Linux
runs-on: ubuntu-latest
container: node:20-alpine
container: node:22-alpine
steps:
- uses: actions/checkout@v4
- run: apk add build-base git python3 py3-setuptools --update-cache
@@ -64,13 +64,13 @@ jobs:
- run: npm test
test-alpine-linux-arm64:
name: Testing Node 20 on Alpine-Linux (arm64)
name: Testing Node 22 on Alpine-Linux (arm64)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3
- run: |
docker run --rm -v $(pwd):/tmp/project --entrypoint /bin/sh --platform linux/arm64 node:20-alpine -c "\
docker run --rm -v $(pwd):/tmp/project --entrypoint /bin/sh --platform linux/arm64 node:22-alpine -c "\
apk add build-base git python3 py3-setuptools --update-cache && \
cd /tmp/project && \
npm install --ignore-scripts && \
@@ -84,13 +84,13 @@ jobs:
arch:
- arm/v7
- arm64
name: Testing Node 20 on Linux (${{ matrix.arch }})
name: Testing Node 22 on Linux (${{ matrix.arch }})
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3
- run: |
docker run --rm -v $(pwd):/tmp/project --entrypoint /bin/sh --platform linux/${{ matrix.arch }} node:20 -c "\
docker run --rm -v $(pwd):/tmp/project --entrypoint /bin/sh --platform linux/${{ matrix.arch }} node:22 -c "\
cd /tmp/project && \
npm install --ignore-scripts && \
npm run build-debug && \
+1 -1
View File
@@ -18,7 +18,7 @@
"deps/**"
],
"engines": {
"node": "20.x || 22.x || 23.x || 24.x"
"node": "20.x || 22.x || 23.x || 24.x || 25.x || 26.x"
},
"dependencies": {
"bindings": "^1.5.0",