Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci: fix multi platforms build #34

Merged
merged 1 commit into from
Jan 6, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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