mirror of
https://github.com/ruvnet/RuVector.git
synced 2026-05-29 19:33:34 +00:00
Merge pull request #210 from ruvnet/fix/gnn-darwin-arm64-binary-195
fix: include prebuilt binaries in @ruvector/gnn platform packages
This commit is contained in:
commit
e8ef399be0
9 changed files with 65 additions and 18 deletions
53
.github/workflows/build-gnn.yml
vendored
53
.github/workflows/build-gnn.yml
vendored
|
|
@ -34,9 +34,15 @@ jobs:
|
|||
- host: ubuntu-22.04
|
||||
target: x86_64-unknown-linux-gnu
|
||||
platform: linux-x64-gnu
|
||||
- host: ubuntu-22.04
|
||||
target: x86_64-unknown-linux-musl
|
||||
platform: linux-x64-musl
|
||||
- host: ubuntu-22.04
|
||||
target: aarch64-unknown-linux-gnu
|
||||
platform: linux-arm64-gnu
|
||||
- host: ubuntu-22.04
|
||||
target: aarch64-unknown-linux-musl
|
||||
platform: linux-arm64-musl
|
||||
- host: macos-14
|
||||
target: x86_64-apple-darwin
|
||||
platform: darwin-x64
|
||||
|
|
@ -69,12 +75,27 @@ jobs:
|
|||
with:
|
||||
key: gnn-${{ matrix.settings.target }}
|
||||
|
||||
- name: Install cross-compilation tools (Linux ARM64)
|
||||
- name: Install cross-compilation tools (Linux ARM64 GNU)
|
||||
if: matrix.settings.platform == 'linux-arm64-gnu'
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
|
||||
|
||||
- name: Install cross-compilation tools (Linux x64 musl)
|
||||
if: matrix.settings.platform == 'linux-x64-musl'
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y musl-tools
|
||||
|
||||
- name: Install cross-compilation tools (Linux ARM64 musl)
|
||||
if: matrix.settings.platform == 'linux-arm64-musl'
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu musl-tools
|
||||
|
||||
- name: Install NAPI-RS CLI
|
||||
run: npm install -g @napi-rs/cli
|
||||
|
||||
- name: Install dependencies
|
||||
working-directory: crates/ruvector-gnn-node
|
||||
run: npm install --ignore-scripts --omit=optional --force
|
||||
|
|
@ -82,9 +103,10 @@ jobs:
|
|||
- name: Build native module
|
||||
working-directory: crates/ruvector-gnn-node
|
||||
run: |
|
||||
npx napi build --platform --release --target ${{ matrix.settings.target }}
|
||||
napi build --platform --release --target ${{ matrix.settings.target }} --cargo-flags="-p ruvector-gnn-node"
|
||||
env:
|
||||
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc
|
||||
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER: aarch64-linux-gnu-gcc
|
||||
|
||||
- name: Find built .node files (debug)
|
||||
shell: bash
|
||||
|
|
@ -160,16 +182,24 @@ jobs:
|
|||
PKG_DIR="npm-pkg/gnn-${platform}"
|
||||
mkdir -p "$PKG_DIR"
|
||||
|
||||
# Determine OS and CPU
|
||||
# Determine OS, CPU, and binary name
|
||||
case "$platform" in
|
||||
linux-x64-gnu)
|
||||
OS="linux"; CPU="x64"; LIBC='"libc": ["glibc"],'
|
||||
NODE_NAME="ruvector-gnn.linux-x64-gnu.node"
|
||||
;;
|
||||
linux-x64-musl)
|
||||
OS="linux"; CPU="x64"; LIBC='"libc": ["musl"],'
|
||||
NODE_NAME="ruvector-gnn.linux-x64-musl.node"
|
||||
;;
|
||||
linux-arm64-gnu)
|
||||
OS="linux"; CPU="arm64"; LIBC='"libc": ["glibc"],'
|
||||
NODE_NAME="ruvector-gnn.linux-arm64-gnu.node"
|
||||
;;
|
||||
linux-arm64-musl)
|
||||
OS="linux"; CPU="arm64"; LIBC='"libc": ["musl"],'
|
||||
NODE_NAME="ruvector-gnn.linux-arm64-musl.node"
|
||||
;;
|
||||
darwin-x64)
|
||||
OS="darwin"; CPU="x64"; LIBC=""
|
||||
NODE_NAME="ruvector-gnn.darwin-x64.node"
|
||||
|
|
@ -207,8 +237,25 @@ jobs:
|
|||
}
|
||||
EOF
|
||||
|
||||
# Verify binary exists before publish
|
||||
if [ ! -f "$PKG_DIR/$NODE_NAME" ]; then
|
||||
echo "ERROR: Binary $NODE_NAME missing from $PKG_DIR"
|
||||
ls -la "$PKG_DIR/"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Binary size: $(wc -c < "$PKG_DIR/$NODE_NAME") bytes"
|
||||
|
||||
# Publish
|
||||
cd "$PKG_DIR"
|
||||
npm publish --access public || echo "Failed to publish @ruvector/gnn-${platform}"
|
||||
cd ../..
|
||||
done
|
||||
|
||||
- name: Publish main @ruvector/gnn package
|
||||
env:
|
||||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
working-directory: crates/ruvector-gnn-node
|
||||
run: |
|
||||
npm install --ignore-scripts --omit=optional --force
|
||||
npm publish --access public || echo "Failed to publish @ruvector/gnn"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@ruvector/gnn-darwin-arm64",
|
||||
"version": "0.1.23",
|
||||
"version": "0.1.24",
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@ruvector/gnn-darwin-x64",
|
||||
"version": "0.1.23",
|
||||
"version": "0.1.24",
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@ruvector/gnn-linux-arm64-gnu",
|
||||
"version": "0.1.23",
|
||||
"version": "0.1.24",
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@ruvector/gnn-linux-arm64-musl",
|
||||
"version": "0.1.23",
|
||||
"version": "0.1.24",
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@ruvector/gnn-linux-x64-gnu",
|
||||
"version": "0.1.23",
|
||||
"version": "0.1.24",
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@ruvector/gnn-linux-x64-musl",
|
||||
"version": "0.1.23",
|
||||
"version": "0.1.24",
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@ruvector/gnn-win32-x64-msvc",
|
||||
"version": "0.1.23",
|
||||
"version": "0.1.24",
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@ruvector/gnn",
|
||||
"version": "0.1.23",
|
||||
"version": "0.1.24",
|
||||
"description": "Graph Neural Network capabilities for Ruvector - Node.js bindings",
|
||||
"main": "index.js",
|
||||
"types": "index.d.ts",
|
||||
|
|
@ -51,12 +51,12 @@
|
|||
"access": "public"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@ruvector/gnn-win32-x64-msvc": "0.1.23",
|
||||
"@ruvector/gnn-darwin-x64": "0.1.23",
|
||||
"@ruvector/gnn-linux-x64-gnu": "0.1.23",
|
||||
"@ruvector/gnn-linux-x64-musl": "0.1.23",
|
||||
"@ruvector/gnn-linux-arm64-gnu": "0.1.23",
|
||||
"@ruvector/gnn-linux-arm64-musl": "0.1.23",
|
||||
"@ruvector/gnn-darwin-arm64": "0.1.23"
|
||||
"@ruvector/gnn-win32-x64-msvc": "0.1.24",
|
||||
"@ruvector/gnn-darwin-x64": "0.1.24",
|
||||
"@ruvector/gnn-linux-x64-gnu": "0.1.24",
|
||||
"@ruvector/gnn-linux-x64-musl": "0.1.24",
|
||||
"@ruvector/gnn-linux-arm64-gnu": "0.1.24",
|
||||
"@ruvector/gnn-linux-arm64-musl": "0.1.24",
|
||||
"@ruvector/gnn-darwin-arm64": "0.1.24"
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue