@@ -26,41 +26,60 @@ jobs:
26
26
target : " aarch64-unknown-linux-gnu"
27
27
setup : |
28
28
sudo apt update
29
- sudo apt install -y crossbuild-essential-arm64
30
-
29
+ sudo apt install -y g++-aarch64-linux-gnu libc6-dev-arm64-cross
31
30
echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc" >> $GITHUB_ENV
32
31
echo "CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc" >> $GITHUB_ENV
33
32
echo "CXX_aarch64_unknown_linux_gnu=aarch64-linux-gnu-g++" >> $GITHUB_ENV
34
33
35
34
- host : ubuntu-latest
36
35
target : " x86_64-unknown-linux-gnu"
36
+ container : amazon/aws-lambda-nodejs:18
37
+ install : |
38
+ yum install -y gcc gcc-c++ git
39
+ curl https://sh.rustup.rs -sSf | bash -s -- -y
40
+
41
+ setup : |
42
+ pnpm install
37
43
38
44
- host : ubuntu-latest
39
45
target : " x86_64-unknown-linux-musl"
46
+ container : ghcr.io/napi-rs/napi-rs/nodejs-rust:stable-2023-09-17-alpine
47
+ install : |
48
+ apk add libc6-compat curl
40
49
setup : |
41
- sudo apt update
42
- sudo apt install -y musl-tools
50
+ pnpm install
43
51
44
52
- host : ubuntu-latest
45
53
target : " aarch64-unknown-linux-musl"
54
+ container : ghcr.io/napi-rs/napi-rs/nodejs-rust:stable-2023-09-17-alpine
55
+ install : |
56
+ apk add libc6-compat curl
57
+ echo /root/.cargo/bin >> ${GITHUB_PATH}
58
+ echo /usr/local/cargo/bin/rustup >> ${GITHUB_PATH}
59
+ echo /aarch64-linux-musl-cross/bin >> ${GITHUB_PATH}
60
+ export PATH=/aarch64-linux-musl-cross/bin:/usr/local/cargo/bin/rustup:/root/.cargo/bin:${PATH}
46
61
setup : |
47
- sudo apt update
48
- sudo apt install -y crossbuild-essential-arm64 musl-tools clang llvm
49
-
50
- echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER=aarch64-linux-gnu-gcc" >> $GITHUB_ENV
51
- echo "CC_aarch64_unknown_linux_musl=aarch64-linux-gnu-gcc" >> $GITHUB_ENV
52
- echo "CXX_aarch64_unknown_linux_musl=aarch64-linux-gnu-g++" >> $GITHUB_ENV
53
- rust_env : ' RUSTFLAGS="-Ctarget-feature=-crt-static"'
62
+ export PATH=/aarch64-linux-musl-cross/bin:/usr/local/cargo/bin/rustup:/root/.cargo/bin:${PATH}
63
+ rustup default $(cat ./rust-toolchain)-aarch64-unknown-linux-musl
64
+ rustup target add aarch64-unknown-linux-musl
65
+ rustup toolchain install $(cat ./rust-toolchain)
66
+ pnpm install
67
+ rust_env : CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER=/aarch64-linux-musl-cross/bin/aarch64-linux-musl-gcc RUSTFLAGS="-Ctarget-feature=-crt-static"
54
68
55
69
- host : windows-latest
56
70
target : " aarch64-pc-windows-msvc"
57
71
58
72
- host : windows-latest
59
73
target : " x86_64-pc-windows-msvc"
60
74
61
- name : " Build ${{ matrix.settings.target }}"
62
75
runs-on : ${{ matrix.settings.host }}
76
+ container :
77
+ image : ${{ matrix.settings.container }}
63
78
steps :
79
+ - name : Install Packages
80
+ run : ${{ matrix.settings.install }}
81
+ if : ${{ matrix.settings.install }}
82
+
64
83
- name : Checkout
65
84
uses : actions/checkout@v3
66
85
with :
@@ -70,17 +89,19 @@ jobs:
70
89
uses : ./.github/actions/setup-rust
71
90
with :
72
91
targets : ${{ matrix.settings.target }}
92
+ if : ${{ !matrix.settings.install }}
73
93
74
94
- name : Setup Node
75
95
uses : ./.github/actions/setup-node
96
+ with :
97
+ enable-corepack : false
98
+ if : ${{ !matrix.settings.install }}
76
99
77
100
- name : Setup toolchain
78
- shell : bash
79
101
run : ${{ matrix.settings.setup }}
80
102
if : ${{ matrix.settings.setup }}
81
103
82
104
- name : Build native library
83
- shell : bash
84
105
run : |
85
106
cd packages/turbo-repository
86
107
${{ matrix.settings.rust_env }} pnpm build:release --target=${{ matrix.settings.target }}
0 commit comments