Skip to content

Commit 74a8960

Browse files
committed
fix(*): binary size for linux-gnu
1 parent 36ec312 commit 74a8960

File tree

8 files changed

+77
-117
lines changed

8 files changed

+77
-117
lines changed

.github/dependabot.yml

Lines changed: 0 additions & 47 deletions
This file was deleted.

.github/workflows/auto-merge.yaml

Lines changed: 0 additions & 22 deletions
This file was deleted.

.github/workflows/ci.yaml

Lines changed: 57 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -32,23 +32,27 @@ jobs:
3232
- host: windows-latest
3333
architecture: x86
3434
build: |
35-
npx lerna exec "yarn build --target i686-pc-windows-msvc" --concurrency 1 --stream --no-prefix
35+
yarn global add lerna
36+
lerna exec "yarn build --target i686-pc-windows-msvc" --concurrency 1 --stream --no-prefix
3637
yarn test
3738
target: 'i686-pc-windows-msvc'
38-
- host: macos-latest
39+
- host: ubuntu-latest
3940
architecture: x64
4041
target: 'x86_64-unknown-linux-gnu'
41-
setup: |
42-
yarn global add lerna --registry https://registry.npmjs.org --network-timeout 300000
43-
build: |
44-
lerna exec "yarn build --target x86_64-unknown-linux-gnu --zig --zig-abi-suffix 2.17 --strip" --concurrency 1 --stream --no-prefix
42+
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine-zig
43+
# Node.js in Baidu need to compatible with `GLIBC_2.12`
44+
build: >-
45+
set -e &&
46+
rustup toolchain install $(cat ./rust-toolchain) &&
47+
rustup target add x86_64-unknown-linux-gnu &&
48+
yarn global add lerna &&
49+
lerna exec "yarn build --target x86_64-unknown-linux-gnu --zig --zig-abi-suffix 2.12" --concurrency 1 --stream --no-prefix &&
50+
llvm-strip -x packages/*/*.node
4551
- host: ubuntu-latest
4652
architecture: x64
4753
target: 'x86_64-unknown-linux-musl'
48-
docker: |
49-
docker pull $DOCKER_REGISTRY_URL/napi-rs/napi-rs/nodejs-rust:lts-alpine
50-
docker tag $DOCKER_REGISTRY_URL/napi-rs/napi-rs/nodejs-rust:lts-alpine builder
51-
build: docker run --rm -v ~/.cargo/git:/root/.cargo/git -v ~/.cargo/registry:/root/.cargo/registry -v $(pwd):/build -w /build builder yarn build
54+
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
55+
build: yarn build
5256
- host: macos-latest
5357
architecture: x64
5458
target: 'aarch64-apple-darwin'
@@ -58,22 +62,29 @@ jobs:
5862
export CXX=$(xcrun -f clang++);
5963
SYSROOT=$(xcrun --sdk macosx --show-sdk-path);
6064
export CFLAGS="-isysroot $SYSROOT -isystem $SYSROOT";
61-
npx lerna exec "yarn build --target aarch64-apple-darwin" --concurrency 1 --stream --no-prefix
65+
yarn global add lerna
66+
lerna exec "yarn build --target aarch64-apple-darwin" --concurrency 1 --stream --no-prefix
6267
strip -x packages/*/*.node
6368
- host: ubuntu-latest
6469
architecture: x64
6570
target: 'aarch64-unknown-linux-gnu'
66-
setup: |
67-
sudo apt-get update
68-
sudo apt-get install g++-aarch64-linux-gnu gcc-aarch64-linux-gnu -y
69-
build: npx lerna exec "yarn build --target aarch64-unknown-linux-gnu" --concurrency 1 --stream --no-prefix
70-
- host: ubuntu-latest
71+
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine-zig
72+
build: >-
73+
set -e &&
74+
rustup toolchain install $(cat ./rust-toolchain) &&
75+
rustup target add aarch64-unknown-linux-gnu &&
76+
yarn global add lerna &&
77+
lerna exec "yarn build --target aarch64-unknown-linux-gnu --zig --zig-abi-suffix 2.17" --concurrency 1 --stream --no-prefix &&
78+
llvm-strip -x packages/*/*.node
79+
- host: ubuntu-18.04
7180
architecture: x64
7281
target: 'armv7-unknown-linux-gnueabihf'
7382
setup: |
7483
sudo apt-get update
7584
sudo apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf -y
76-
build: npx lerna exec "yarn build --target armv7-unknown-linux-gnueabihf" --concurrency 1 --stream --no-prefix
85+
build: |
86+
yarn global add lerna
87+
lerna exec "yarn build --target armv7-unknown-linux-gnueabihf" --concurrency 1 --stream --no-prefix
7788
- host: ubuntu-latest
7889
architecture: x64
7990
target: aarch64-linux-android
@@ -82,7 +93,8 @@ jobs:
8293
export CC="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang"
8394
export CXX="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang++"
8495
export PATH="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH}"
85-
npx lerna exec "yarn build --target aarch64-linux-android" --concurrency 1 --stream --no-prefix
96+
yarn global add lerna
97+
lerna exec "yarn build --target aarch64-linux-android" --concurrency 1 --stream --no-prefix
8698
- host: ubuntu-latest
8799
architecture: x64
88100
target: armv7-linux-androideabi
@@ -91,19 +103,25 @@ jobs:
91103
export CC="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang"
92104
export CXX="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang++"
93105
export PATH="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH}"
94-
npx lerna exec "yarn build --target armv7-linux-androideabi" --concurrency 1 --stream --no-prefix
106+
yarn global add lerna
107+
lerna exec "yarn build --target armv7-linux-androideabi" --concurrency 1 --stream --no-prefix
95108
- host: ubuntu-latest
96109
architecture: x64
97110
target: 'aarch64-unknown-linux-musl'
98111
downloadTarget: 'aarch64-unknown-linux-musl'
99-
docker: |
100-
docker pull ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
101-
docker tag ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine builder
102-
build: docker run --rm -v ~/.cargo/git:/root/.cargo/git -v ~/.cargo/registry:/root/.cargo/registry -v $(pwd):/node-rs -w /node-rs builder sh -c "rustup toolchain install $(cat ./rust-toolchain) && rustup target add aarch64-unknown-linux-musl && yarn global add lerna && lerna exec \"yarn build --target aarch64-unknown-linux-musl\" --concurrency 1 --stream --no-prefix"
112+
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
113+
build: >-
114+
set -e &&
115+
rustup toolchain install $(cat ./rust-toolchain) &&
116+
rustup target add aarch64-unknown-linux-musl &&
117+
yarn global add lerna &&
118+
lerna exec "yarn build --target aarch64-unknown-linux-musl" --concurrency 1 --stream --no-prefix
103119
- host: windows-latest
104120
architecture: x64
105121
target: 'aarch64-pc-windows-msvc'
106-
build: npx lerna exec "yarn build --target aarch64-pc-windows-msvc" --concurrency 1 --stream --no-prefix
122+
build: |
123+
yarn global add lerna
124+
lerna exec "yarn build --target aarch64-pc-windows-msvc" --concurrency 1 --stream --no-prefix
107125
108126
name: stable - ${{ matrix.settings.target }} - node@16
109127
runs-on: ${{ matrix.settings.host }}
@@ -113,6 +131,7 @@ jobs:
113131

114132
- name: Setup node
115133
uses: actions/setup-node@v2
134+
if: ${{ !matrix.settings.docker }}
116135
with:
117136
node-version: 16
118137
check-latest: true
@@ -121,47 +140,35 @@ jobs:
121140

122141
- name: Install
123142
uses: actions-rs/toolchain@v1
143+
if: ${{ !matrix.settings.docker }}
124144
with:
125145
profile: minimal
126146
override: true
127147
target: ${{ matrix.settings.target }}
128148

129-
- name: Install Zig toolchain
130-
uses: goto-bus-stop/setup-zig@v1
131-
if: matrix.settings.target == 'x86_64-unknown-linux-gnu'
132-
with:
133-
version: 0.9.0
134-
135149
- name: Generate Cargo.lock
136150
uses: actions-rs/cargo@v1
151+
if: ${{ !matrix.settings.docker }}
137152
with:
138153
command: generate-lockfile
139154

140155
- name: Cache cargo registry
141156
uses: actions/cache@v2
142157
with:
143158
path: ~/.cargo/registry
144-
key: ${{ matrix.settings.target }}-node@16-cargo-registry-trimmed-${{ hashFiles('**/Cargo.lock') }}
159+
key: ${{ matrix.settings.target }}-cargo-registry
145160

146161
- name: Cache cargo index
147162
uses: actions/cache@v2
148163
with:
149164
path: ~/.cargo/git
150-
key: ${{ matrix.settings.target }}-node@16-cargo-index-trimmed-${{ hashFiles('**/Cargo.lock') }}
165+
key: ${{ matrix.settings.target }}-cargo-index
151166

152167
- name: Cache NPM dependencies
153168
uses: actions/cache@v2
154169
with:
155170
path: node_modules
156-
key: npm-cache-${{ matrix.settings.target }}-node@16-${{ hashFiles('yarn.lock') }}
157-
158-
- name: Pull latest image
159-
run: ${{ matrix.settings.docker }}
160-
env:
161-
DOCKER_REGISTRY_URL: ghcr.io
162-
DOCKER_USERNAME: ${{ github.actor }}
163-
DOCKER_PASSWORD: ${{ secrets.GITHUB_TOKEN }}
164-
if: ${{ matrix.settings.docker }}
171+
key: npm-cache-build-${{ matrix.settings.target }}-node@16
165172

166173
- name: Setup toolchain
167174
run: ${{ matrix.settings.setup }}
@@ -174,8 +181,17 @@ jobs:
174181
- name: 'Build TypeScript'
175182
run: yarn build:ts
176183

184+
- name: Build in docker
185+
uses: addnab/docker-run-action@v3
186+
if: ${{ matrix.settings.docker }}
187+
with:
188+
image: ${{ matrix.settings.docker }}
189+
options: -v ${{ env.HOME }}/.cargo/git:/root/.cargo/git -v ${{ env.HOME }}/.cargo/registry:/root/.cargo/registry -v ${{ github.workspace }}:/build -w /build
190+
run: ${{ matrix.settings.build }}
191+
177192
- name: 'Build'
178193
run: ${{ matrix.settings.build }}
194+
if: ${{ !matrix.settings.docker }}
179195
shell: bash
180196

181197
- name: Upload artifact

.github/workflows/lint.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
uses: actions/cache@v2
3232
with:
3333
path: node_modules
34-
key: npm-cache-lint-node@14-${{ hashFiles('yarn.lock') }}
34+
key: npm-cache-lint-node@16-${{ hashFiles('yarn.lock') }}
3535

3636
- name: 'Install dependencies'
3737
run: yarn install --frozen-lockfile --registry https://registry.npmjs.org

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
"postinstall": "husky install"
2323
},
2424
"devDependencies": {
25-
"@napi-rs/cli": "^2.4.0",
25+
"@napi-rs/cli": "^2.4.1",
2626
"@swc-node/core": "^1.8.2",
2727
"@swc-node/register": "^1.4.2",
2828
"@types/node": "^17.0.8",

renovate.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"extends": ["config:base", ":preserveSemverRanges"],
3+
"packageRules": [
4+
{
5+
"automerge": true,
6+
"matchUpdateTypes": ["minor", "patch", "pin", "digest"]
7+
}
8+
],
9+
"lockFileMaintenance": {
10+
"enabled": true,
11+
"extends": ["schedule:monthly"]
12+
}
13+
}

rust-toolchain

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
nightly-2021-12-05
1+
nightly-2021-12-05

yarn.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -938,10 +938,10 @@
938938
semver "^7.3.5"
939939
tar "^6.1.11"
940940

941-
"@napi-rs/cli@^2.4.0":
942-
version "2.4.0"
943-
resolved "https://registry.npmjs.org/@napi-rs/cli/-/cli-2.4.0.tgz#a74d991e12871d6fb8eb32b33cc53a9c105b1921"
944-
integrity sha512-rq4ivqWY7KWG104gRxTmWyehE4eUxJ/mBJx81r3PeghtLZ11NpJNuvF9kSvsol8hTjJQ7CWlF2plQ20I9rMOng==
941+
"@napi-rs/cli@^2.4.1":
942+
version "2.4.1"
943+
resolved "https://registry.npmjs.org/@napi-rs/cli/-/cli-2.4.1.tgz#03b55ad13a421d1d4031d6b807423a72cf6fb9ca"
944+
integrity sha512-H+3PgpL3XIdkKo5eeExuQjJ0lt83BS/IhjYpLGmN6c1yWnT1aTiCDlpQo8vVNuw2bkytEQwHeYUlEdBp2DF5mw==
945945

946946
"@napi-rs/triples@^1.1.0":
947947
version "1.1.0"

0 commit comments

Comments
 (0)