Skip to content

Commit bb2e5cc

Browse files
committed
Fix prebuild script and workflows for native binary compilation
- Change prebuild script to use prebuildify for native binaries - Update build.yml to build prebuilds for Linux, macOS, Windows - Fix release.yml to use correct prebuild command - Enable cross-platform native binary generation for production use
1 parent 75690fc commit bb2e5cc

3 files changed

Lines changed: 46 additions & 5 deletions

File tree

.github/workflows/build.yml

Lines changed: 44 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,14 @@ on:
77
branches: [main]
88

99
jobs:
10-
# Basic build and test (just Ubuntu + Node 18 for now)
10+
# Build prebuilds for all platforms (Linux, macOS, Windows)
1111
build:
12-
runs-on: ubuntu-latest
12+
strategy:
13+
fail-fast: false
14+
matrix:
15+
os: [ubuntu-latest, macos-latest, windows-latest]
16+
17+
runs-on: ${{ matrix.os }}
1318

1419
steps:
1520
- uses: actions/checkout@v4
@@ -35,5 +40,41 @@ jobs:
3540
- name: Run tests
3641
run: npm test
3742

38-
- name: Build prebuild
43+
- name: Build prebuilds
3944
run: npm run prebuild
45+
46+
- name: Upload prebuilds
47+
uses: actions/upload-artifact@v4
48+
with:
49+
name: prebuilds-${{ matrix.os }}
50+
path: prebuilds/
51+
if-no-files-found: warn
52+
53+
# Consolidate all prebuilds into one artifact
54+
consolidate-prebuilds:
55+
needs: build
56+
runs-on: ubuntu-latest
57+
58+
steps:
59+
- uses: actions/checkout@v4
60+
61+
- name: Download all prebuilds
62+
uses: actions/download-artifact@v4
63+
with:
64+
path: prebuilds-all
65+
pattern: prebuilds-*
66+
67+
- name: Consolidate prebuilds
68+
run: |
69+
mkdir -p prebuilds
70+
for dir in prebuilds-all/*/; do
71+
cp -r "$dir"* prebuilds/ 2>/dev/null || true
72+
done
73+
echo "Prebuilds consolidated:"
74+
ls -la prebuilds/
75+
76+
- name: Upload consolidated prebuilds
77+
uses: actions/upload-artifact@v4
78+
with:
79+
name: prebuilds-all-platforms
80+
path: prebuilds/

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ jobs:
3535
- name: Install dependencies
3636
run: npm ci
3737

38-
- name: Build prebuild
38+
- name: Build prebuilds
3939
run: npm run prebuild
4040

4141
- name: Upload prebuild

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
"scripts": {
2525
"build": "tsc",
2626
"build:esm": "tsc -p tsconfig.esm.json && mkdir -p dist-esm-final && mv dist-esm/*.js dist-esm-final/ && for file in dist-esm-final/*.js; do mv \"$file\" \"${file%.js}.mjs\"; done && mv dist-esm-final/* dist/ && rm -rf dist-esm dist-esm-final",
27-
"prebuild": "echo 'No native compilation needed for this JavaScript library'",
27+
"prebuild": "prebuildify --napi --strip",
2828
"test": "vitest run",
2929
"test:watch": "vitest",
3030
"lint": "eslint src --ext .ts",

0 commit comments

Comments
 (0)