Skip to content

Commit 537dec0

Browse files
committed
Use github actions to build more prebuilt binaries, #190
1 parent 1f500f9 commit 537dec0

File tree

2 files changed

+92
-0
lines changed

2 files changed

+92
-0
lines changed

.github/workflows/prebuild.yml

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
name: Test and Prebuild
2+
on: [push]
3+
jobs:
4+
build-test-macos:
5+
if: startsWith(github.ref, 'refs/tags/')
6+
runs-on: macos-11
7+
steps:
8+
- uses: actions/checkout@v2
9+
- name: Setup node
10+
uses: actions/setup-node@v2
11+
with:
12+
node-version: 12
13+
- run: npm install
14+
- run: npm test
15+
- run: npm run prebuild
16+
if: startsWith(github.ref, 'refs/tags/')
17+
- run: npm run prebuild-arm64
18+
if: startsWith(github.ref, 'refs/tags/')
19+
- run: tar --create --format ustar --verbose --file=prebuild-darwin.tar -C prebuilds .
20+
if: startsWith(github.ref, 'refs/tags/')
21+
- name: Prebuild
22+
uses: softprops/action-gh-release@v1
23+
if: startsWith(github.ref, 'refs/tags/')
24+
with:
25+
files: prebuild-darwin.tar
26+
build-linux:
27+
if: startsWith(github.ref, 'refs/tags/')
28+
runs-on: ubuntu-18.04
29+
container: quay.io/pypa/manylinux2014_x86_64
30+
steps:
31+
- run: ldd --version ldd
32+
- uses: actions/checkout@v2
33+
- name: Setup node
34+
uses: actions/setup-node@v2
35+
with:
36+
node-version: 12
37+
- run: npm install
38+
- run: npm run prebuild
39+
- run: npm test
40+
- run: tar --create --verbose --file=prebuild-linux.tar -C prebuilds .
41+
- name: Prebuild
42+
if: startsWith(github.ref, 'refs/tags/')
43+
uses: softprops/action-gh-release@v1
44+
with:
45+
files: prebuild-linux.tar
46+
build-alpine:
47+
runs-on: ubuntu-18.04
48+
container: node:12.22-alpine
49+
steps:
50+
- run: apk add python3 py3-pip build-base
51+
- uses: actions/checkout@v2
52+
- run: npm install
53+
- run: npm run prebuild-musl
54+
- run: npm test
55+
- run: tar --create --verbose --file=prebuild-alpine.tar -C prebuilds .
56+
- name: Prebuild
57+
if: startsWith(github.ref, 'refs/tags/')
58+
uses: softprops/action-gh-release@v1
59+
with:
60+
files: prebuild-alpine.tar
61+
build-linux-arm64:
62+
if: startsWith(github.ref, 'refs/tags/')
63+
runs-on: ubuntu-18.04
64+
container: quay.io/pypa/manylinux_2_24_x86_64
65+
steps:
66+
- run: apt-get update
67+
- run: apt-get install -y gcc-aarch64-linux-gnu
68+
- run: apt-get install -y g++-aarch64-linux-gnu
69+
- run: ldd --version ldd
70+
- uses: actions/checkout@v2
71+
- name: Setup node
72+
uses: actions/setup-node@v2
73+
with:
74+
node-version: 12
75+
- run: npm install
76+
- run: npm run prebuild-arm64
77+
if: startsWith(github.ref, 'refs/tags/')
78+
env:
79+
CC: aarch64-linux-gnu-gcc
80+
CXX: aarch64-linux-gnu-g++
81+
- run: tar --create --verbose --file=prebuild-linux-arm64.tar -C prebuilds .
82+
- name: Prebuild
83+
if: startsWith(github.ref, 'refs/tags/')
84+
uses: softprops/action-gh-release@v1
85+
with:
86+
files: prebuild-linux-arm64.tar

package.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@
3333
"scripts": {
3434
"install": "node-gyp-build",
3535
"recompile": "node-gyp build",
36+
"before-publish": "prebuildify-ci download && prebuildify --target 17.1.0 && prebuildify --target 16.13.0 && prebuildify --target 15.5.0 && prebuildify --target 14.17.6 && prebuildify --target 12.22.7 && prebuildify --target electron@15.2.0",
37+
"prebuild": "prebuildify --target 17.1.0 && prebuildify --target 16.13.0 && prebuildify --target 15.5.0 && prebuildify --target 14.17.6 && prebuildify --target 12.22.7 && prebuildify --target electron@15.2.0",
38+
"prebuild-musl": "prebuildify --target 17.1.0 --libc musl --tag-libc && prebuildify --target 16.13.0 --libc musl --tag-libc && prebuildify --target 14.17.6 --libc musl --tag-libc && prebuildify --target 12.22.7 --libc musl --tag-libc",
39+
"prebuild-arm64": "prebuildify --arch=arm64 --target 17.1.0 --libc musl && prebuildify --arch=arm64 --target 16.13.0 && prebuildify --arch=arm64 --target 14.17.6 && prebuildify --arch=arm64 --target electron@15.2.0",
3640
"test": "./node_modules/.bin/mocha test/**.test.js --recursive",
3741
"benchmark": "node ./benchmark/index.js"
3842
},
@@ -47,6 +51,8 @@
4751
"mkdirp": "^1.0.4",
4852
"mocha": "^8.1.3",
4953
"node-gyp": "^7.1.0",
54+
"prebuildify": "^5.0.0",
55+
"prebuildify-ci": "^1.0.5",
5056
"rimraf": "^3.0.2",
5157
"jshint": "^2.12.0"
5258
}

0 commit comments

Comments
 (0)