From be7dbde0e51238de83faa6391edde7eeaba40250 Mon Sep 17 00:00:00 2001 From: Dimitri Mitropoulos Date: Fri, 31 Jan 2025 14:24:22 -0500 Subject: [PATCH 01/15] pass through target --- .../workflows/turborepo-library-release.yml | 21 ++++++++++--------- packages/turbo-repository/package.json | 4 ++-- packages/turbo-repository/scripts/build.sh | 11 +++------- 3 files changed, 16 insertions(+), 20 deletions(-) diff --git a/.github/workflows/turborepo-library-release.yml b/.github/workflows/turborepo-library-release.yml index c1ad8a771123d..b61b432e1e9b0 100644 --- a/.github/workflows/turborepo-library-release.yml +++ b/.github/workflows/turborepo-library-release.yml @@ -4,7 +4,7 @@ on: workflow_dispatch: inputs: dry_run: - description: "Do a dry run, skipping the final publish step." + description: Do a dry run, skipping the final publish step. type: boolean jobs: @@ -18,12 +18,13 @@ jobs: matrix: settings: - host: macos-latest - target: "aarch64-apple-darwin" + target: aarch64-apple-darwin + - host: macos-latest - target: "x86_64-apple-darwin" + target: x86_64-apple-darwin - host: ubuntu-latest - target: "aarch64-unknown-linux-gnu" + target: aarch64-unknown-linux-gnu setup: | sudo apt update sudo apt install -y g++-aarch64-linux-gnu libc6-dev-arm64-cross @@ -32,7 +33,7 @@ jobs: echo "CXX_aarch64_unknown_linux_gnu=aarch64-linux-gnu-g++" >> $GITHUB_ENV - host: ubuntu-latest - target: "x86_64-unknown-linux-gnu" + target: x86_64-unknown-linux-gnu container: amazon/aws-lambda-nodejs:20 install: | microdnf install -y gcc gcc-c++ git @@ -42,7 +43,7 @@ jobs: pnpm install - host: ubuntu-latest - target: "x86_64-unknown-linux-musl" + target: x86_64-unknown-linux-musl container: ghcr.io/napi-rs/napi-rs/nodejs-rust:stable-2023-09-17-alpine install: | apk update && apk upgrade @@ -56,7 +57,7 @@ jobs: pnpm install - host: ubuntu-latest - target: "aarch64-unknown-linux-musl" + target: aarch64-unknown-linux-musl container: ghcr.io/napi-rs/napi-rs/nodejs-rust:stable-2023-09-17-alpine install: | apk update && apk upgrade @@ -73,10 +74,10 @@ jobs: rust_env: CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER=/aarch64-linux-musl-cross/bin/aarch64-linux-musl-gcc RUSTFLAGS="-Ctarget-feature=-crt-static" - host: windows-latest - target: "aarch64-pc-windows-msvc" + target: aarch64-pc-windows-msvc - host: windows-latest - target: "x86_64-pc-windows-msvc" + target: x86_64-pc-windows-msvc runs-on: ${{ matrix.settings.host }} container: @@ -123,7 +124,7 @@ jobs: path: packages/turbo-repository/native package: - name: "Publish to NPM" + name: Publish to NPM runs-on: ubuntu-latest needs: [build] steps: diff --git a/packages/turbo-repository/package.json b/packages/turbo-repository/package.json index ce0a41bc16e43..b336d80b677f1 100644 --- a/packages/turbo-repository/package.json +++ b/packages/turbo-repository/package.json @@ -5,8 +5,8 @@ "bugs": "https://github.com/vercel/turborepo/issues", "homepage": "https://turbo.build/repo", "scripts": { - "build": "bash scripts/build.sh", - "build:release": "bash scripts/build.sh release", + "build": "bash scripts/build.sh --dts ../js/index.d.ts", + "build:release": "bash scripts/build.sh --release", "package": "node scripts/publish.mjs", "test": "node --import tsx --test __tests__/*.test.ts" }, diff --git a/packages/turbo-repository/scripts/build.sh b/packages/turbo-repository/scripts/build.sh index 418e862b67491..035706c0df372 100755 --- a/packages/turbo-repository/scripts/build.sh +++ b/packages/turbo-repository/scripts/build.sh @@ -1,6 +1,7 @@ #!/bin/bash -flags="\ +user_provided_flags="$@" +script_provided_flags="\ --platform \ -p turborepo-napi \ --cargo-cwd ../../ \ @@ -9,13 +10,7 @@ flags="\ --js false \ " -if [ "$1" == "release" ]; then - flags+=" --release" -else - flags+=" --dts ../js/index.d.ts" -fi - -node_modules/.bin/napi build $flags +node_modules/.bin/napi build "$user_provided_flags" "$script_provided_flags" # Unfortunately, when napi generates a .d.ts file, it doesn't match our formatting rules (it doesn't have semicolons). # Since there's now way to configure this from napi itself, so we need to run prettier on it after generating it. From c3127e0af0c96201ca6bd3234ff8d82ba3bc525d Mon Sep 17 00:00:00 2001 From: Dimitri Mitropoulos Date: Fri, 31 Jan 2025 14:48:51 -0500 Subject: [PATCH 02/15] wip --- packages/turbo-repository/scripts/build.sh | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/packages/turbo-repository/scripts/build.sh b/packages/turbo-repository/scripts/build.sh index 035706c0df372..d6cb13f1e0631 100755 --- a/packages/turbo-repository/scripts/build.sh +++ b/packages/turbo-repository/scripts/build.sh @@ -3,14 +3,23 @@ user_provided_flags="$@" script_provided_flags="\ --platform \ - -p turborepo-napi \ - --cargo-cwd ../../ \ - --cargo-name turborepo_napi \ + -p=turborepo-napi \ + --cargo-cwd=../../ \ + --cargo-name=turborepo_napi \ native \ - --js false \ + --js=false \ " -node_modules/.bin/napi build "$user_provided_flags" "$script_provided_flags" +for flag in $user_provided_flags; do + if [[ $flag == --target=* ]]; then + target=${flag#*=} + rustup target add "$target" + fi +done + +flags="$script_provided_flags $user_provided_flags" +echo $flags +node_modules/.bin/napi build "$flags" # Unfortunately, when napi generates a .d.ts file, it doesn't match our formatting rules (it doesn't have semicolons). # Since there's now way to configure this from napi itself, so we need to run prettier on it after generating it. From 736af2440632b620b7b08a42c3022b9e8f0926d6 Mon Sep 17 00:00:00 2001 From: Dimitri Mitropoulos Date: Fri, 31 Jan 2025 15:25:28 -0500 Subject: [PATCH 03/15] fix bash thing --- packages/turbo-repository/scripts/build.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/turbo-repository/scripts/build.sh b/packages/turbo-repository/scripts/build.sh index d6cb13f1e0631..98a00b58bce33 100755 --- a/packages/turbo-repository/scripts/build.sh +++ b/packages/turbo-repository/scripts/build.sh @@ -17,9 +17,7 @@ for flag in $user_provided_flags; do fi done -flags="$script_provided_flags $user_provided_flags" -echo $flags -node_modules/.bin/napi build "$flags" +node_modules/.bin/napi build $script_provided_flags $user_provided_flags # Unfortunately, when napi generates a .d.ts file, it doesn't match our formatting rules (it doesn't have semicolons). # Since there's now way to configure this from napi itself, so we need to run prettier on it after generating it. From 01181827c07ebb31cc76fdc9f16a2a873cb8ed0b Mon Sep 17 00:00:00 2001 From: nicholaslyang Date: Mon, 3 Feb 2025 11:31:46 -0500 Subject: [PATCH 04/15] Use zig to build --- packages/turbo-repository/scripts/build.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/turbo-repository/scripts/build.sh b/packages/turbo-repository/scripts/build.sh index 98a00b58bce33..839dcf400da72 100755 --- a/packages/turbo-repository/scripts/build.sh +++ b/packages/turbo-repository/scripts/build.sh @@ -6,6 +6,7 @@ script_provided_flags="\ -p=turborepo-napi \ --cargo-cwd=../../ \ --cargo-name=turborepo_napi \ + --zig \ native \ --js=false \ " From 889dad54d94bcc302431c80264d095e8dacf4b6a Mon Sep 17 00:00:00 2001 From: nicholaslyang Date: Mon, 3 Feb 2025 11:36:44 -0500 Subject: [PATCH 05/15] Add zig binary --- .github/workflows/turborepo-library-release.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/turborepo-library-release.yml b/.github/workflows/turborepo-library-release.yml index b61b432e1e9b0..3ad70157e28e4 100644 --- a/.github/workflows/turborepo-library-release.yml +++ b/.github/workflows/turborepo-library-release.yml @@ -39,6 +39,10 @@ jobs: microdnf install -y gcc gcc-c++ git curl https://sh.rustup.rs -sSf | bash -s -- -y npm i -g pnpm@8.9.0 + mkdir ../zig + curl --show-error --location https://ziglang.org/builds/zig-linux-x86_64-0.11.0-dev.1908+06b263825.tar.xz | tar -J -xf - -C ../zig --strip-components 1 + export PATH=$PATH:$(pwd)/../zig + echo "$(pwd)/../zig" >> $GITHUB_PATH setup: | pnpm install From b95c2b49492b03ffed025334433fb18d2f6eca0e Mon Sep 17 00:00:00 2001 From: nicholaslyang Date: Mon, 3 Feb 2025 11:41:37 -0500 Subject: [PATCH 06/15] Install tar --- .github/workflows/turborepo-library-release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/turborepo-library-release.yml b/.github/workflows/turborepo-library-release.yml index 3ad70157e28e4..50006f2db8373 100644 --- a/.github/workflows/turborepo-library-release.yml +++ b/.github/workflows/turborepo-library-release.yml @@ -36,7 +36,7 @@ jobs: target: x86_64-unknown-linux-gnu container: amazon/aws-lambda-nodejs:20 install: | - microdnf install -y gcc gcc-c++ git + microdnf install -y gcc gcc-c++ git tar curl https://sh.rustup.rs -sSf | bash -s -- -y npm i -g pnpm@8.9.0 mkdir ../zig From fd6f90998a3ab5873afa0dc11404294d82a2b202 Mon Sep 17 00:00:00 2001 From: nicholaslyang Date: Mon, 3 Feb 2025 11:46:05 -0500 Subject: [PATCH 07/15] Add xz --- .github/workflows/turborepo-library-release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/turborepo-library-release.yml b/.github/workflows/turborepo-library-release.yml index 50006f2db8373..f482ac8a8bc97 100644 --- a/.github/workflows/turborepo-library-release.yml +++ b/.github/workflows/turborepo-library-release.yml @@ -36,7 +36,7 @@ jobs: target: x86_64-unknown-linux-gnu container: amazon/aws-lambda-nodejs:20 install: | - microdnf install -y gcc gcc-c++ git tar + microdnf install -y gcc gcc-c++ git tar xz curl https://sh.rustup.rs -sSf | bash -s -- -y npm i -g pnpm@8.9.0 mkdir ../zig From f6cc6db741e26b70c7783ba371e16af4d6710538 Mon Sep 17 00:00:00 2001 From: nicholaslyang Date: Mon, 3 Feb 2025 11:49:42 -0500 Subject: [PATCH 08/15] Update zig link --- .github/workflows/turborepo-library-release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/turborepo-library-release.yml b/.github/workflows/turborepo-library-release.yml index f482ac8a8bc97..78b4a44011f44 100644 --- a/.github/workflows/turborepo-library-release.yml +++ b/.github/workflows/turborepo-library-release.yml @@ -40,7 +40,7 @@ jobs: curl https://sh.rustup.rs -sSf | bash -s -- -y npm i -g pnpm@8.9.0 mkdir ../zig - curl --show-error --location https://ziglang.org/builds/zig-linux-x86_64-0.11.0-dev.1908+06b263825.tar.xz | tar -J -xf - -C ../zig --strip-components 1 + curl --show-error --location https://ziglang.org/builds/zig-linux-x86_64-0.14.0-dev.3028+cdc9d65b0.tar.xz | tar -J -xf - -C ../zig --strip-components 1 export PATH=$PATH:$(pwd)/../zig echo "$(pwd)/../zig" >> $GITHUB_PATH setup: | From 2c736e2dfb75f9cef523e96d8c6488393a74b544 Mon Sep 17 00:00:00 2001 From: nicholaslyang Date: Mon, 3 Feb 2025 12:02:11 -0500 Subject: [PATCH 09/15] Only use zig flag on x86-unknown-linux-gnu --- .github/workflows/turborepo-library-release.yml | 12 ++++++++++++ packages/turbo-repository/scripts/build.sh | 1 - 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/.github/workflows/turborepo-library-release.yml b/.github/workflows/turborepo-library-release.yml index 78b4a44011f44..4a57eac44e59c 100644 --- a/.github/workflows/turborepo-library-release.yml +++ b/.github/workflows/turborepo-library-release.yml @@ -113,7 +113,19 @@ jobs: run: ${{ matrix.settings.setup }} if: ${{ matrix.settings.setup }} + # For x86_64-unknown-linux-gnu, we need to cross-compile with zig. + # Fortunately, napi comes with a `--zig` flag + - name: Build native library (cross-compile with zig) + if: ${{ matrix.host.target == 'x86_64-unknown-linux-gnu' }} + # For some reason PATH modifications from Setup toolchain aren't populated + # when using the nodejs-rust alpine container. + run: | + export PATH=/usr/local/cargo/bin/rustup:/root/.cargo/bin:${PATH} + cd packages/turbo-repository + ${{ matrix.settings.rust_env }} pnpm build:release --target=${{ matrix.settings.target }} --zig + - name: Build native library + if: ${{ matrix.host.target != 'x86_64-unknown-linux-gnu' }} # For some reason PATH modifications from Setup toolchain aren't populated # when using the nodejs-rust alpine container. run: | diff --git a/packages/turbo-repository/scripts/build.sh b/packages/turbo-repository/scripts/build.sh index 839dcf400da72..98a00b58bce33 100755 --- a/packages/turbo-repository/scripts/build.sh +++ b/packages/turbo-repository/scripts/build.sh @@ -6,7 +6,6 @@ script_provided_flags="\ -p=turborepo-napi \ --cargo-cwd=../../ \ --cargo-name=turborepo_napi \ - --zig \ native \ --js=false \ " From 5b86420671b2de9803f9a236d6a57f31a55c69dd Mon Sep 17 00:00:00 2001 From: nicholaslyang Date: Mon, 3 Feb 2025 12:13:53 -0500 Subject: [PATCH 10/15] Add aarch64-unknown-linux-gnu to the zig path --- .github/workflows/turborepo-library-release.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/turborepo-library-release.yml b/.github/workflows/turborepo-library-release.yml index 4a57eac44e59c..06fc2ad272fd4 100644 --- a/.github/workflows/turborepo-library-release.yml +++ b/.github/workflows/turborepo-library-release.yml @@ -31,6 +31,10 @@ jobs: echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc" >> $GITHUB_ENV echo "CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc" >> $GITHUB_ENV echo "CXX_aarch64_unknown_linux_gnu=aarch64-linux-gnu-g++" >> $GITHUB_ENV + mkdir ../zig + curl --show-error --location https://ziglang.org/builds/zig-linux-aarch64-0.14.0-dev.3028+cdc9d65b0.tar.xz | tar -J -xf - -C ../zig --strip-components 1 + export PATH=$PATH:$(pwd)/../zig + echo "$(pwd)/../zig" >> $GITHUB_PATH - host: ubuntu-latest target: x86_64-unknown-linux-gnu @@ -113,10 +117,10 @@ jobs: run: ${{ matrix.settings.setup }} if: ${{ matrix.settings.setup }} - # For x86_64-unknown-linux-gnu, we need to cross-compile with zig. + # For x86_64-unknown-linux-gnu and aarch64-unknown-linux-gnu, we need to cross-compile with zig # Fortunately, napi comes with a `--zig` flag - name: Build native library (cross-compile with zig) - if: ${{ matrix.host.target == 'x86_64-unknown-linux-gnu' }} + if: ${{ matrix.host.target == 'x86_64-unknown-linux-gnu' || matrix.host.target == 'aarch64-unknown-linux-gnu' }} # For some reason PATH modifications from Setup toolchain aren't populated # when using the nodejs-rust alpine container. run: | @@ -125,7 +129,7 @@ jobs: ${{ matrix.settings.rust_env }} pnpm build:release --target=${{ matrix.settings.target }} --zig - name: Build native library - if: ${{ matrix.host.target != 'x86_64-unknown-linux-gnu' }} + if: ${{ matrix.host.target != 'x86_64-unknown-linux-gnu' && matrix.host.target != 'aarch64-unknown-linux-gnu' }} # For some reason PATH modifications from Setup toolchain aren't populated # when using the nodejs-rust alpine container. run: | From 0e05b13ef927127c3aa72ffb5b864d7be07aa4c5 Mon Sep 17 00:00:00 2001 From: nicholaslyang Date: Mon, 3 Feb 2025 12:27:04 -0500 Subject: [PATCH 11/15] whoops settings not host --- .github/workflows/turborepo-library-release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/turborepo-library-release.yml b/.github/workflows/turborepo-library-release.yml index 06fc2ad272fd4..b72f493c79a72 100644 --- a/.github/workflows/turborepo-library-release.yml +++ b/.github/workflows/turborepo-library-release.yml @@ -120,7 +120,7 @@ jobs: # For x86_64-unknown-linux-gnu and aarch64-unknown-linux-gnu, we need to cross-compile with zig # Fortunately, napi comes with a `--zig` flag - name: Build native library (cross-compile with zig) - if: ${{ matrix.host.target == 'x86_64-unknown-linux-gnu' || matrix.host.target == 'aarch64-unknown-linux-gnu' }} + if: ${{ matrix.settings.target == 'x86_64-unknown-linux-gnu' || matrix.settings.target == 'aarch64-unknown-linux-gnu' }} # For some reason PATH modifications from Setup toolchain aren't populated # when using the nodejs-rust alpine container. run: | @@ -129,7 +129,7 @@ jobs: ${{ matrix.settings.rust_env }} pnpm build:release --target=${{ matrix.settings.target }} --zig - name: Build native library - if: ${{ matrix.host.target != 'x86_64-unknown-linux-gnu' && matrix.host.target != 'aarch64-unknown-linux-gnu' }} + if: ${{ matrix.settings.target != 'x86_64-unknown-linux-gnu' && matrix.settings.target != 'aarch64-unknown-linux-gnu' }} # For some reason PATH modifications from Setup toolchain aren't populated # when using the nodejs-rust alpine container. run: | From 1461826c498ff3df80a1694304e9c23e08c8e63e Mon Sep 17 00:00:00 2001 From: nicholaslyang Date: Mon, 3 Feb 2025 12:55:03 -0500 Subject: [PATCH 12/15] Trying to add xz-utils --- .github/workflows/turborepo-library-release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/turborepo-library-release.yml b/.github/workflows/turborepo-library-release.yml index b72f493c79a72..d154fc6432b92 100644 --- a/.github/workflows/turborepo-library-release.yml +++ b/.github/workflows/turborepo-library-release.yml @@ -27,7 +27,7 @@ jobs: target: aarch64-unknown-linux-gnu setup: | sudo apt update - sudo apt install -y g++-aarch64-linux-gnu libc6-dev-arm64-cross + sudo apt install -y g++-aarch64-linux-gnu libc6-dev-arm64-cross xz-utils echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc" >> $GITHUB_ENV echo "CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc" >> $GITHUB_ENV echo "CXX_aarch64_unknown_linux_gnu=aarch64-linux-gnu-g++" >> $GITHUB_ENV From fb0eb41eb06ceae31102ae5e9b4acb4fef46629b Mon Sep 17 00:00:00 2001 From: nicholaslyang Date: Mon, 3 Feb 2025 13:01:58 -0500 Subject: [PATCH 13/15] uno mas --- .github/workflows/turborepo-library-release.yml | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/.github/workflows/turborepo-library-release.yml b/.github/workflows/turborepo-library-release.yml index d154fc6432b92..dd97cd84dd522 100644 --- a/.github/workflows/turborepo-library-release.yml +++ b/.github/workflows/turborepo-library-release.yml @@ -28,13 +28,11 @@ jobs: setup: | sudo apt update sudo apt install -y g++-aarch64-linux-gnu libc6-dev-arm64-cross xz-utils - echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc" >> $GITHUB_ENV - echo "CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc" >> $GITHUB_ENV - echo "CXX_aarch64_unknown_linux_gnu=aarch64-linux-gnu-g++" >> $GITHUB_ENV - mkdir ../zig - curl --show-error --location https://ziglang.org/builds/zig-linux-aarch64-0.14.0-dev.3028+cdc9d65b0.tar.xz | tar -J -xf - -C ../zig --strip-components 1 - export PATH=$PATH:$(pwd)/../zig - echo "$(pwd)/../zig" >> $GITHUB_PATH + mkdir zig + curl --show-error --location https://ziglang.org/builds/zig-linux-aarch64-0.14.0-dev.3028+cdc9d65b0.tar.xz | tar -J -xf - -C zig --strip-components 1 + export PATH=$PATH:$(pwd)/zig + echo "$(pwd)/zig" >> $GITHUB_PATH + zig - host: ubuntu-latest target: x86_64-unknown-linux-gnu From 35b3f357bad180ebe1c675354fa0b786bb9f2035 Mon Sep 17 00:00:00 2001 From: nicholaslyang Date: Mon, 3 Feb 2025 13:17:58 -0500 Subject: [PATCH 14/15] oops forgot we're doing a cross compile --- .github/workflows/turborepo-library-release.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/turborepo-library-release.yml b/.github/workflows/turborepo-library-release.yml index dd97cd84dd522..c6fec24f5b17f 100644 --- a/.github/workflows/turborepo-library-release.yml +++ b/.github/workflows/turborepo-library-release.yml @@ -29,10 +29,9 @@ jobs: sudo apt update sudo apt install -y g++-aarch64-linux-gnu libc6-dev-arm64-cross xz-utils mkdir zig - curl --show-error --location https://ziglang.org/builds/zig-linux-aarch64-0.14.0-dev.3028+cdc9d65b0.tar.xz | tar -J -xf - -C zig --strip-components 1 + curl --show-error --location https://ziglang.org/builds/zig-linux-x86_64-0.14.0-dev.3028+cdc9d65b0.tar.xz | tar -J -xf - -C zig --strip-components 1 export PATH=$PATH:$(pwd)/zig echo "$(pwd)/zig" >> $GITHUB_PATH - zig - host: ubuntu-latest target: x86_64-unknown-linux-gnu From b3d7a25a3ccfe462a28be8759500a1343381d2ea Mon Sep 17 00:00:00 2001 From: Dimitri Mitropoulos Date: Mon, 3 Feb 2025 13:25:55 -0500 Subject: [PATCH 15/15] see what happens if we move the flag to the script --- .github/workflows/turborepo-library-release.yml | 14 -------------- packages/turbo-repository/scripts/build.sh | 6 ++++++ 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/.github/workflows/turborepo-library-release.yml b/.github/workflows/turborepo-library-release.yml index c6fec24f5b17f..c4d04c8e87fca 100644 --- a/.github/workflows/turborepo-library-release.yml +++ b/.github/workflows/turborepo-library-release.yml @@ -114,21 +114,7 @@ jobs: run: ${{ matrix.settings.setup }} if: ${{ matrix.settings.setup }} - # For x86_64-unknown-linux-gnu and aarch64-unknown-linux-gnu, we need to cross-compile with zig - # Fortunately, napi comes with a `--zig` flag - - name: Build native library (cross-compile with zig) - if: ${{ matrix.settings.target == 'x86_64-unknown-linux-gnu' || matrix.settings.target == 'aarch64-unknown-linux-gnu' }} - # For some reason PATH modifications from Setup toolchain aren't populated - # when using the nodejs-rust alpine container. - run: | - export PATH=/usr/local/cargo/bin/rustup:/root/.cargo/bin:${PATH} - cd packages/turbo-repository - ${{ matrix.settings.rust_env }} pnpm build:release --target=${{ matrix.settings.target }} --zig - - name: Build native library - if: ${{ matrix.settings.target != 'x86_64-unknown-linux-gnu' && matrix.settings.target != 'aarch64-unknown-linux-gnu' }} - # For some reason PATH modifications from Setup toolchain aren't populated - # when using the nodejs-rust alpine container. run: | export PATH=/usr/local/cargo/bin/rustup:/root/.cargo/bin:${PATH} cd packages/turbo-repository diff --git a/packages/turbo-repository/scripts/build.sh b/packages/turbo-repository/scripts/build.sh index 98a00b58bce33..828a4609fff9c 100755 --- a/packages/turbo-repository/scripts/build.sh +++ b/packages/turbo-repository/scripts/build.sh @@ -14,6 +14,12 @@ for flag in $user_provided_flags; do if [[ $flag == --target=* ]]; then target=${flag#*=} rustup target add "$target" + + # For we need to cross-compile some targets with Zig + # Fortunately, napi comes with a `--zig` flag + if [[ $target == x86_64-unknown-linux-gnu || $target == aarch64-unknown-linux-gnu ]]; then + script_provided_flags+=" --zig" + fi fi done