Skip to content

Commit

Permalink
ci: fix multi platforms build (#34)
Browse files Browse the repository at this point in the history
  • Loading branch information
Brooooooklyn authored Jan 6, 2023
1 parent 53b5b1d commit da804fc
Show file tree
Hide file tree
Showing 5 changed files with 46 additions and 55 deletions.
6 changes: 0 additions & 6 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -1,9 +1,3 @@
[target.aarch64-unknown-linux-gnu]
linker = "aarch64-linux-gnu-gcc"

[target.armv7-unknown-linux-gnueabihf]
linker = "arm-linux-gnueabihf-gcc"

[target.x86_64-unknown-linux-musl]
rustflags = [
"-C",
Expand Down
83 changes: 40 additions & 43 deletions .github/workflows/create-js-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ name: nodejs-polars
env:
DEBUG: napi:*
APP_NAME: nodejs-polars
MACOSX_DEPLOYMENT_TARGET: '10.13'
'on':
MACOSX_DEPLOYMENT_TARGET: "10.13"
"on":
push:
# Sequence of patterns matched against refs/tags
# Sequence of patterns matched against refs/tags
tags:
- 'nodejs-polars-v*' # Push events to matching nodejs-polars-v*, i.e. nodejs-polars-v1.0, nodejs-polars-v20.15.10
- "nodejs-polars-v*" # Push events to matching nodejs-polars-v*, i.e. nodejs-polars-v1.0, nodejs-polars-v20.15.10
jobs:
build:
strategy:
Expand Down Expand Up @@ -40,13 +40,12 @@ jobs:
rustup target add x86_64-unknown-linux-gnu &&
yarn build --target x86_64-unknown-linux-gnu --zig --zig-abi-suffix 2.12 &&
llvm-strip -x polars/*.node
# This has issues with the napi build containers see https://github.com/napi-rs/napi-rs/issues/1389
# - host: ubuntu-latest
# architecture: x64
# target: x86_64-unknown-linux-musl
# docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
# build: set -e && yarn build && strip polars/*.node
- host: ubuntu-latest
architecture: x64
target: x86_64-unknown-linux-musl
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
build: set -e && unset CC && unset CXX && yarn build && strip polars/*.node
- host: macos-latest
target: aarch64-apple-darwin
build: |
Expand All @@ -60,14 +59,16 @@ jobs:
- host: ubuntu-latest
architecture: x64
target: aarch64-unknown-linux-gnu
setup: |
sudo apt-get update
sudo apt-get install g++-aarch64-linux-gnu gcc-aarch64-linux-gnu -y
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64
build: |
yarn build --target=aarch64-unknown-linux-gnu
aarch64-linux-gnu-strip polars/*.node
rustup toolchain install $(cat ./rust-toolchain)
rustup target add aarch64-unknown-linux-gnu
cp -r /usr/aarch64-unknown-linux-gnu/lib/gcc /usr/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot/lib/
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"
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"
yarn build --target aarch64-unknown-linux-gnu
llvm-strip polars/*.node
# 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

# - host: ubuntu-latest
# architecture: x64
# target: armv7-unknown-linux-gnueabihf
Expand All @@ -78,32 +79,28 @@ jobs:
# yarn build --target=armv7-unknown-linux-gnueabihf
# arm-linux-gnueabihf-strip polars/*.node

- host: ubuntu-latest
architecture: x64
target: aarch64-linux-android
build: |
export CLANG_VERSION=`ls ${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang | sed 's/ *$//g'`
touch "${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/${CLANG_VERSION}/lib/linux/aarch64/libgcc.a"
chmod 777 "${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/${CLANG_VERSION}/lib/linux/aarch64/libgcc.a"
echo "INPUT(-lunwind)" > "${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/${CLANG_VERSION}/lib/linux/aarch64/libgcc.a"
yarn build --target aarch64-linux-android
${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip polars/*.node
# This has issues with the napi build containers see https://github.com/napi-rs/napi-rs/issues/1389

# - host: ubuntu-latest
# architecture: x64
# target: aarch64-linux-android
# build: |
# export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang"
# export CC="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang"
# export CXX="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang++"
# export AR="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar"
# export PATH="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH}"
# yarn build --target aarch64-linux-android#
# ${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip polars/*.node

# This has issues with the napi build containers see https://github.com/napi-rs/napi-rs/issues/1389

# - host: ubuntu-latest
# architecture: x64
# target: aarch64-unknown-linux-musl
# docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
# build: |-
# rustup toolchain install $(cat ./rust-toolchain)
# rustup target add aarch64-unknown-linux-musl
# yarn build --target=aarch64-unknown-linux-musl
# /aarch64-linux-musl-cross/bin/aarch64-linux-musl-strip polars/*.node
- host: ubuntu-latest
architecture: x64
target: aarch64-unknown-linux-musl
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
build: |-
rustup toolchain install $(cat ./rust-toolchain)
rustup target add aarch64-unknown-linux-musl
unset CC
unset CXX
yarn build --target=aarch64-unknown-linux-musl
/aarch64-linux-musl-cross/bin/aarch64-linux-musl-strip polars/*.node
name: ${{ matrix.settings.target }} - node@16
runs-on: ${{ matrix.settings.host }}
Expand Down Expand Up @@ -161,7 +158,7 @@ jobs:
if: ${{ matrix.settings.docker }}
with:
image: ${{ matrix.settings.docker }}
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'
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"
run: ${{ matrix.settings.build }}
- name: Build
run: ${{ matrix.settings.build }}
Expand Down Expand Up @@ -223,4 +220,4 @@ jobs:
- name: Publish to npm
run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
Binary file removed .yarn/install-state.gz
Binary file not shown.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
"version": "napi version"
},
"devDependencies": {
"@napi-rs/cli": "^2.13.3",
"@napi-rs/cli": "^2.14.1",
"@types/chance": "^1.1.3",
"@types/jest": "^27.0.3",
"@types/node": "^16.11.9",
Expand Down
10 changes: 5 additions & 5 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -738,12 +738,12 @@ __metadata:
languageName: node
linkType: hard

"@napi-rs/cli@npm:^2.13.3":
version: 2.13.3
resolution: "@napi-rs/cli@npm:2.13.3"
"@napi-rs/cli@npm:^2.14.1":
version: 2.14.1
resolution: "@napi-rs/cli@npm:2.14.1"
bin:
napi: scripts/index.js
checksum: b16c3b307927b68adfe378bd76153b75c4a1a9d4101d7c49e0b1b9d425ce0f63a6d18acb9548d210dd90a4244333666f839d3f27070d3a07d63fa8ae1bfe2f35
checksum: ac93f7ce67b9b5ab839fadc7afbaa0a33126325807578133df016ed9d88455f403e7ceb9f225d2996d65e4a9d67960516533bab155a47998192f42febe35de24
languageName: node
linkType: hard

Expand Down Expand Up @@ -4465,7 +4465,7 @@ __metadata:
version: 0.0.0-use.local
resolution: "nodejs-polars@workspace:."
dependencies:
"@napi-rs/cli": ^2.13.3
"@napi-rs/cli": ^2.14.1
"@types/chance": ^1.1.3
"@types/jest": ^27.0.3
"@types/node": ^16.11.9
Expand Down

0 comments on commit da804fc

Please sign in to comment.