From 2fc7a90ec03a240ebba6cda855ea429e434ea992 Mon Sep 17 00:00:00 2001 From: kingchenc Date: Fri, 22 May 2026 04:17:23 +0200 Subject: [PATCH] B11: ship npm binaries for linux-arm64 and win32-arm64 The napi loader resolves wickra-linux-arm64-gnu and wickra-win32-arm64-msvc, but neither was published, so require('wickra') failed on those platforms. Adds both to napi.triples and optionalDependencies, adds their npm/ package templates, and extends the release node-build matrix to build them on GitHub's native ARM runners (ubuntu-24.04-arm, windows-11-arm). --- .github/workflows/release.yml | 2 ++ .../node/npm/linux-arm64-gnu/package.json | 27 +++++++++++++++++++ .../node/npm/win32-arm64-msvc/package.json | 24 +++++++++++++++++ bindings/node/package.json | 8 ++++-- 4 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 bindings/node/npm/linux-arm64-gnu/package.json create mode 100644 bindings/node/npm/win32-arm64-msvc/package.json diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 74c47fe3..1a24636f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -141,9 +141,11 @@ jobs: matrix: include: - { host: ubuntu-latest, target: x86_64-unknown-linux-gnu } + - { host: ubuntu-24.04-arm, target: aarch64-unknown-linux-gnu } - { host: macos-latest, target: x86_64-apple-darwin } - { host: macos-latest, target: aarch64-apple-darwin } - { host: windows-latest, target: x86_64-pc-windows-msvc } + - { host: windows-11-arm, target: aarch64-pc-windows-msvc } runs-on: ${{ matrix.host }} steps: - uses: actions/checkout@v4 diff --git a/bindings/node/npm/linux-arm64-gnu/package.json b/bindings/node/npm/linux-arm64-gnu/package.json new file mode 100644 index 00000000..529b5791 --- /dev/null +++ b/bindings/node/npm/linux-arm64-gnu/package.json @@ -0,0 +1,27 @@ +{ + "name": "wickra-linux-arm64-gnu", + "version": "0.1.4", + "description": "Native binding for wickra (linux arm64 GNU). Installed automatically as an optional dependency of wickra on matching platforms.", + "main": "wickra.linux-arm64-gnu.node", + "files": [ + "wickra.linux-arm64-gnu.node" + ], + "license": "SEE LICENSE IN LICENSE", + "engines": { + "node": ">= 16" + }, + "os": [ + "linux" + ], + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "repository": { + "type": "git", + "url": "https://github.com/kingchenc/wickra" + }, + "homepage": "https://github.com/kingchenc/wickra" +} diff --git a/bindings/node/npm/win32-arm64-msvc/package.json b/bindings/node/npm/win32-arm64-msvc/package.json new file mode 100644 index 00000000..0c4a1a0f --- /dev/null +++ b/bindings/node/npm/win32-arm64-msvc/package.json @@ -0,0 +1,24 @@ +{ + "name": "wickra-win32-arm64-msvc", + "version": "0.1.4", + "description": "Native binding for wickra (Windows arm64 MSVC). Installed automatically as an optional dependency of wickra on matching platforms.", + "main": "wickra.win32-arm64-msvc.node", + "files": [ + "wickra.win32-arm64-msvc.node" + ], + "license": "SEE LICENSE IN LICENSE", + "engines": { + "node": ">= 16" + }, + "os": [ + "win32" + ], + "cpu": [ + "arm64" + ], + "repository": { + "type": "git", + "url": "https://github.com/kingchenc/wickra" + }, + "homepage": "https://github.com/kingchenc/wickra" +} diff --git a/bindings/node/package.json b/bindings/node/package.json index f3969908..13dad6d7 100644 --- a/bindings/node/package.json +++ b/bindings/node/package.json @@ -35,9 +35,11 @@ "defaults": false, "additional": [ "x86_64-unknown-linux-gnu", + "aarch64-unknown-linux-gnu", "x86_64-apple-darwin", "aarch64-apple-darwin", - "x86_64-pc-windows-msvc" + "x86_64-pc-windows-msvc", + "aarch64-pc-windows-msvc" ] } }, @@ -46,9 +48,11 @@ }, "optionalDependencies": { "wickra-linux-x64-gnu": "0.1.4", + "wickra-linux-arm64-gnu": "0.1.4", "wickra-darwin-x64": "0.1.4", "wickra-darwin-arm64": "0.1.4", - "wickra-win32-x64-msvc": "0.1.4" + "wickra-win32-x64-msvc": "0.1.4", + "wickra-win32-arm64-msvc": "0.1.4" }, "scripts": { "build": "napi build --platform --release",