Skip to content

Commit da804fc

Browse files
authored
ci: fix multi platforms build (pola-rs#34)
1 parent 53b5b1d commit da804fc

File tree

5 files changed

+46
-55
lines changed

5 files changed

+46
-55
lines changed

.cargo/config.toml

-6
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,3 @@
1-
[target.aarch64-unknown-linux-gnu]
2-
linker = "aarch64-linux-gnu-gcc"
3-
4-
[target.armv7-unknown-linux-gnueabihf]
5-
linker = "arm-linux-gnueabihf-gcc"
6-
71
[target.x86_64-unknown-linux-musl]
82
rustflags = [
93
"-C",

.github/workflows/create-js-release.yaml

+40-43
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ name: nodejs-polars
22
env:
33
DEBUG: napi:*
44
APP_NAME: nodejs-polars
5-
MACOSX_DEPLOYMENT_TARGET: '10.13'
6-
'on':
5+
MACOSX_DEPLOYMENT_TARGET: "10.13"
6+
"on":
77
push:
8-
# Sequence of patterns matched against refs/tags
8+
# Sequence of patterns matched against refs/tags
99
tags:
10-
- 'nodejs-polars-v*' # Push events to matching nodejs-polars-v*, i.e. nodejs-polars-v1.0, nodejs-polars-v20.15.10
10+
- "nodejs-polars-v*" # Push events to matching nodejs-polars-v*, i.e. nodejs-polars-v1.0, nodejs-polars-v20.15.10
1111
jobs:
1212
build:
1313
strategy:
@@ -40,13 +40,12 @@ jobs:
4040
rustup target add x86_64-unknown-linux-gnu &&
4141
yarn build --target x86_64-unknown-linux-gnu --zig --zig-abi-suffix 2.12 &&
4242
llvm-strip -x polars/*.node
43-
# This has issues with the napi build containers see https://github.com/napi-rs/napi-rs/issues/1389
4443
45-
# - host: ubuntu-latest
46-
# architecture: x64
47-
# target: x86_64-unknown-linux-musl
48-
# docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
49-
# build: set -e && yarn build && strip polars/*.node
44+
- host: ubuntu-latest
45+
architecture: x64
46+
target: x86_64-unknown-linux-musl
47+
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
48+
build: set -e && unset CC && unset CXX && yarn build && strip polars/*.node
5049
- host: macos-latest
5150
target: aarch64-apple-darwin
5251
build: |
@@ -60,14 +59,16 @@ jobs:
6059
- host: ubuntu-latest
6160
architecture: x64
6261
target: aarch64-unknown-linux-gnu
63-
setup: |
64-
sudo apt-get update
65-
sudo apt-get install g++-aarch64-linux-gnu gcc-aarch64-linux-gnu -y
62+
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64
6663
build: |
67-
yarn build --target=aarch64-unknown-linux-gnu
68-
aarch64-linux-gnu-strip polars/*.node
64+
rustup toolchain install $(cat ./rust-toolchain)
65+
rustup target add aarch64-unknown-linux-gnu
66+
cp -r /usr/aarch64-unknown-linux-gnu/lib/gcc /usr/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot/lib/
67+
export LDFLAGS="--sysroot=/usr/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot -L/usr/aarch64-unknown-linux-gnu/lib/gcc/aarch64-unknown-linux-gnu/4.8.5"
68+
export CFLAGS="-fuse-ld=lld --sysroot=/usr/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot -L/usr/aarch64-unknown-linux-gnu/lib/gcc/aarch64-unknown-linux-gnu/4.8.5"
69+
yarn build --target aarch64-unknown-linux-gnu
70+
llvm-strip polars/*.node
6971
# Disabled until a simd-json fallback can be implemented. see https://github.com/simd-lite/simd-json/issues/263 and https://github.com/simd-lite/simd-json/issues/218
70-
7172
# - host: ubuntu-latest
7273
# architecture: x64
7374
# target: armv7-unknown-linux-gnueabihf
@@ -78,32 +79,28 @@ jobs:
7879
# yarn build --target=armv7-unknown-linux-gnueabihf
7980
# arm-linux-gnueabihf-strip polars/*.node
8081

82+
- host: ubuntu-latest
83+
architecture: x64
84+
target: aarch64-linux-android
85+
build: |
86+
export CLANG_VERSION=`ls ${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang | sed 's/ *$//g'`
87+
touch "${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/${CLANG_VERSION}/lib/linux/aarch64/libgcc.a"
88+
chmod 777 "${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/${CLANG_VERSION}/lib/linux/aarch64/libgcc.a"
89+
echo "INPUT(-lunwind)" > "${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/${CLANG_VERSION}/lib/linux/aarch64/libgcc.a"
90+
yarn build --target aarch64-linux-android
91+
${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip polars/*.node
8192
82-
# This has issues with the napi build containers see https://github.com/napi-rs/napi-rs/issues/1389
83-
84-
# - host: ubuntu-latest
85-
# architecture: x64
86-
# target: aarch64-linux-android
87-
# build: |
88-
# export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang"
89-
# export CC="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang"
90-
# export CXX="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang++"
91-
# export AR="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar"
92-
# export PATH="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH}"
93-
# yarn build --target aarch64-linux-android#
94-
# ${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip polars/*.node
95-
96-
# This has issues with the napi build containers see https://github.com/napi-rs/napi-rs/issues/1389
97-
98-
# - host: ubuntu-latest
99-
# architecture: x64
100-
# target: aarch64-unknown-linux-musl
101-
# docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
102-
# build: |-
103-
# rustup toolchain install $(cat ./rust-toolchain)
104-
# rustup target add aarch64-unknown-linux-musl
105-
# yarn build --target=aarch64-unknown-linux-musl
106-
# /aarch64-linux-musl-cross/bin/aarch64-linux-musl-strip polars/*.node
93+
- host: ubuntu-latest
94+
architecture: x64
95+
target: aarch64-unknown-linux-musl
96+
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
97+
build: |-
98+
rustup toolchain install $(cat ./rust-toolchain)
99+
rustup target add aarch64-unknown-linux-musl
100+
unset CC
101+
unset CXX
102+
yarn build --target=aarch64-unknown-linux-musl
103+
/aarch64-linux-musl-cross/bin/aarch64-linux-musl-strip polars/*.node
107104
108105
name: ${{ matrix.settings.target }} - node@16
109106
runs-on: ${{ matrix.settings.host }}
@@ -161,7 +158,7 @@ jobs:
161158
if: ${{ matrix.settings.docker }}
162159
with:
163160
image: ${{ matrix.settings.docker }}
164-
options: '--user 0:0 -v ${{ github.workspace }}/.cargo-cache/git/db:/usr/local/cargo/git/db -v ${{ github.workspace }}/.cargo/registry/cache:/usr/local/cargo/registry/cache -v ${{ github.workspace }}/.cargo/registry/index:/usr/local/cargo/registry/index -v ${{ github.workspace }}:/build -w /build'
161+
options: "--user 0:0 -v ${{ github.workspace }}/.cargo-cache/git/db:/usr/local/cargo/git/db -v ${{ github.workspace }}/.cargo/registry/cache:/usr/local/cargo/registry/cache -v ${{ github.workspace }}/.cargo/registry/index:/usr/local/cargo/registry/index -v ${{ github.workspace }}:/build -w /build"
165162
run: ${{ matrix.settings.build }}
166163
- name: Build
167164
run: ${{ matrix.settings.build }}
@@ -223,4 +220,4 @@ jobs:
223220
- name: Publish to npm
224221
run: npm publish
225222
env:
226-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
223+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

.yarn/install-state.gz

-578 KB
Binary file not shown.

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
"version": "napi version"
5252
},
5353
"devDependencies": {
54-
"@napi-rs/cli": "^2.13.3",
54+
"@napi-rs/cli": "^2.14.1",
5555
"@types/chance": "^1.1.3",
5656
"@types/jest": "^27.0.3",
5757
"@types/node": "^16.11.9",

yarn.lock

+5-5
Original file line numberDiff line numberDiff line change
@@ -738,12 +738,12 @@ __metadata:
738738
languageName: node
739739
linkType: hard
740740

741-
"@napi-rs/cli@npm:^2.13.3":
742-
version: 2.13.3
743-
resolution: "@napi-rs/cli@npm:2.13.3"
741+
"@napi-rs/cli@npm:^2.14.1":
742+
version: 2.14.1
743+
resolution: "@napi-rs/cli@npm:2.14.1"
744744
bin:
745745
napi: scripts/index.js
746-
checksum: b16c3b307927b68adfe378bd76153b75c4a1a9d4101d7c49e0b1b9d425ce0f63a6d18acb9548d210dd90a4244333666f839d3f27070d3a07d63fa8ae1bfe2f35
746+
checksum: ac93f7ce67b9b5ab839fadc7afbaa0a33126325807578133df016ed9d88455f403e7ceb9f225d2996d65e4a9d67960516533bab155a47998192f42febe35de24
747747
languageName: node
748748
linkType: hard
749749

@@ -4465,7 +4465,7 @@ __metadata:
44654465
version: 0.0.0-use.local
44664466
resolution: "nodejs-polars@workspace:."
44674467
dependencies:
4468-
"@napi-rs/cli": ^2.13.3
4468+
"@napi-rs/cli": ^2.14.1
44694469
"@types/chance": ^1.1.3
44704470
"@types/jest": ^27.0.3
44714471
"@types/node": ^16.11.9

0 commit comments

Comments
 (0)