2929 runs-on : ubuntu-latest
3030 steps :
3131 - uses : actions/checkout@v6
32+ - name : setup system dependencies
33+ run : sudo apt-get update && sudo apt-get install -y libxdo-dev libxkbcommon-dev libxi-dev libxtst-dev
3234 - name : setup pnpm
3335 uses : pnpm/action-setup@v5
3436 - name : Setup node
@@ -53,40 +55,43 @@ jobs:
5355 fail-fast : false
5456 matrix :
5557 settings :
56- - host : macos-latest
57- target : x86_64-apple-darwin
58- build : pnpm build --target x86_64-apple-darwin
59- - host : windows-latest
60- build : pnpm build --target x86_64-pc-windows-msvc
61- target : x86_64-pc-windows-msvc
62- - host : windows-latest
63- build : pnpm build --target i686-pc-windows-msvc
64- target : i686-pc-windows-msvc
65- - host : ubuntu-latest
66- target : x86_64-unknown-linux-gnu
67- build : pnpm build --target x86_64-unknown-linux-gnu --use-napi-cross
68- - host : macos-latest
69- target : aarch64-apple-darwin
70- build : pnpm build --target aarch64-apple-darwin
71- - host : ubuntu-latest
72- target : aarch64-unknown-linux-gnu
73- build : pnpm build --target aarch64-unknown-linux-gnu --use-napi-cross
58+ # - host: macos-latest
59+ # target: x86_64-apple-darwin
60+ # build: pnpm build --target x86_64-apple-darwin
61+ # - host: windows-latest
62+ # build: pnpm build --target x86_64-pc-windows-msvc
63+ # target: x86_64-pc-windows-msvc
64+ # - host: windows-latest
65+ # build: pnpm build --target i686-pc-windows-msvc
66+ # target: i686-pc-windows-msvc
67+ # - host: ubuntu-latest
68+ # target: x86_64-unknown-linux-gnu
69+ # build: pnpm build --target x86_64-unknown-linux-gnu
70+ # - host: macos-latest
71+ # target: aarch64-apple-darwin
72+ # build: pnpm build --target aarch64-apple-darwin
73+ # - host: ubuntu-24.04-arm
74+ # target: aarch64-unknown-linux-gnu
75+ # build: pnpm build --target aarch64-unknown-linux-gnu
7476 - host : ubuntu-latest
7577 target : armv7-unknown-linux-gnueabihf
76- build : pnpm build --target armv7-unknown-linux-gnueabihf --use-napi- cross
77- - host : windows-latest
78- target : aarch64-pc-windows-msvc
79- build : pnpm build --target aarch64-pc-windows-msvc
80- name : stable - ${{ matrix.settings.target }} - node@20
78+ build : pnpm build --target armv7-unknown-linux-gnueabihf --use-cross
79+ # - host: windows-latest
80+ # target: aarch64-pc-windows-msvc
81+ # build: pnpm build --target aarch64-pc-windows-msvc
82+ name : stable - ${{ matrix.settings.target }} - node@24
8183 runs-on : ${{ matrix.settings.host }}
8284 steps :
8385 - uses : actions/checkout@v6
86+ - name : setup system dependencies
87+ run : sudo apt-get update && sudo apt-get install -y libxdo-dev libxkbcommon-dev libxi-dev libxtst-dev
88+ if : ${{ matrix.settings.target == 'x86_64-unknown-linux-gnu' || matrix.settings.target == 'aarch64-unknown-linux-gnu' }}
8489 - name : setup pnpm
8590 uses : pnpm/action-setup@v5
8691 - name : Setup node
8792 uses : actions/setup-node@v6
8893 with :
89- node-version : 22
94+ node-version : 24
9095 cache : pnpm
9196 - name : Install
9297 uses : dtolnay/rust-toolchain@stable
@@ -108,13 +113,13 @@ jobs:
108113 if : ${{ contains(matrix.settings.target, 'musl') }}
109114 with :
110115 version : 0.15.2
111- - name : Install cargo-zigbuild
116+ - name : Install cross
112117 uses : taiki-e/install-action@v2
113- if : ${{ contains(matrix.settings.target , 'musl ') }}
118+ if : ${{ contains(matrix.settings.build , '--use-cross ') }}
114119 env :
115120 GITHUB_TOKEN : ${{ github.token }}
116121 with :
117- tool : cargo-zigbuild
122+ tool : cross
118123 - name : Setup toolchain
119124 run : ${{ matrix.settings.setup }}
120125 if : ${{ matrix.settings.setup }}
@@ -145,49 +150,49 @@ jobs:
145150 name : bindings-${{ matrix.settings.target }}
146151 path : " *.wasm"
147152 if-no-files-found : error
148- test-macOS-windows-binding :
149- name : Test bindings on ${{ matrix.settings.target }} - node@${{ matrix.node }}
150- needs :
151- - build
152- strategy :
153- fail-fast : false
154- matrix :
155- settings :
156- - host : windows-latest
157- target : x86_64-pc-windows-msvc
158- architecture : x64
159- - host : macos-latest
160- target : x86_64-apple-darwin
161- architecture : x64
162- - host : macos-latest
163- target : aarch64-apple-darwin
164- architecture : arm64
165- node :
166- - " 20 "
167- - " 22 "
168- runs-on : ${{ matrix.settings.host }}
169- steps :
170- - uses : actions/checkout@v6
171- - name : setup pnpm
172- uses : pnpm/action-setup@v5
173- - name : Setup node
174- uses : actions/setup-node@v6
175- with :
176- node-version : ${{ matrix.node }}
177- cache : pnpm
178- architecture : ${{ matrix.settings.architecture }}
179- - name : Install dependencies
180- run : pnpm install
181- - name : Download artifacts
182- uses : actions/download-artifact@v8
183- with :
184- name : bindings-${{ matrix.settings.target }}
185- path : .
186- - name : List packages
187- run : ls -R .
188- shell : bash
189- - name : Test bindings
190- run : pnpm test
153+ # test-macOS-windows-binding:
154+ # name: Test bindings on ${{ matrix.settings.target }} - node@${{ matrix.node }}
155+ # needs:
156+ # - build
157+ # strategy:
158+ # fail-fast: false
159+ # matrix:
160+ # settings:
161+ # - host: windows-latest
162+ # target: x86_64-pc-windows-msvc
163+ # architecture: x64
164+ # - host: macos-latest
165+ # target: x86_64-apple-darwin
166+ # architecture: x64
167+ # - host: macos-latest
168+ # target: aarch64-apple-darwin
169+ # architecture: arm64
170+ # node:
171+ # - "22 "
172+ # - "24 "
173+ # runs-on: ${{ matrix.settings.host }}
174+ # steps:
175+ # - uses: actions/checkout@v6
176+ # - name: setup pnpm
177+ # uses: pnpm/action-setup@v5
178+ # - name: Setup node
179+ # uses: actions/setup-node@v6
180+ # with:
181+ # node-version: ${{ matrix.node }}
182+ # cache: pnpm
183+ # architecture: ${{ matrix.settings.architecture }}
184+ # - name: Install dependencies
185+ # run: pnpm install
186+ # - name: Download artifacts
187+ # uses: actions/download-artifact@v8
188+ # with:
189+ # name: bindings-${{ matrix.settings.target }}
190+ # path: .
191+ # - name: List packages
192+ # run: ls -R .
193+ # shell: bash
194+ # - name: Test bindings
195+ # run: pnpm test
191196 test-linux-binding :
192197 name : Test ${{ matrix.target }} - node@${{ matrix.node }}
193198 needs :
@@ -196,15 +201,28 @@ jobs:
196201 fail-fast : false
197202 matrix :
198203 target :
199- - x86_64-unknown-linux-gnu
200- - aarch64-unknown-linux-gnu
204+ # - x86_64-unknown-linux-gnu
205+ # - aarch64-unknown-linux-gnu
201206 - armv7-unknown-linux-gnueabihf
202207 node :
203- - " 20"
204208 - " 22"
209+ - " 24"
205210 runs-on : ${{ contains(matrix.target, 'aarch64') && 'ubuntu-24.04-arm' || 'ubuntu-latest' }}
206211 steps :
207212 - uses : actions/checkout@v6
213+ - name : setup system dependencies
214+ run : sudo apt-get update && sudo apt-get install -y libxdo-dev libxkbcommon-dev libxi-dev libxtst-dev
215+ - name : Install Xvfb on Linux
216+ if : runner.os == 'Linux'
217+ run : |
218+ sudo apt-get install -y xvfb
219+ which Xvfb
220+ # Set DISPLAY env variable
221+ echo "DISPLAY=:99.0" >> $GITHUB_ENV
222+ # Create virtual display with Xvfb
223+ Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
224+ # Wait for Xvfb to start
225+ sleep 3
208226 - name : setup pnpm
209227 uses : pnpm/action-setup@v5
210228 - name : Setup node
@@ -250,12 +268,16 @@ jobs:
250268 - run : docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
251269 if : ${{ contains(matrix.target, 'armv7') }}
252270 - name : Test bindings
271+ if : ${{ !contains(matrix.target, 'armv7') }}
272+ run : npm run test
273+ - name : Test bindings (docker)
253274 uses : tj-actions/docker-run@v2
275+ if : ${{ contains(matrix.target, 'armv7') }}
254276 with :
255277 image : ${{ steps.docker.outputs.IMAGE }}
256278 name : test-binding
257279 options : " -v ${{ steps.docker.outputs.PNPM_STORE_PATH }}:${{ steps.docker.outputs.PNPM_STORE_PATH }} -v ${{ github.workspace }}:${{ github.workspace }} -w ${{ github.workspace }} --platform ${{ steps.docker.outputs.PLATFORM }}"
258- args : npm run test
280+ args : sudo apt-get update && sudo apt-get install -y libxdo-dev libxkbcommon-dev libxi-dev libxtst-dev && npm run test
259281 publish :
260282 name : Publish
261283 runs-on : ubuntu-latest
0 commit comments