8686 uses : actions/checkout@v4
8787
8888 - name : Update apt repositories
89- if : matrix.target == 'aarch64-unknown-linux-gnu' || matrix.target == 'x86_64-unknown-linux-musl'
89+ if : matrix.target == 'aarch64-unknown-linux-gnu' || matrix.target == 'aarch64-unknown-linux-musl' || matrix.target == ' x86_64-unknown-linux-musl'
9090 run : sudo apt-get update
9191
9292 - name : Install AArch64 target toolchain
9797 if : matrix.target == 'x86_64-unknown-linux-musl'
9898 run : sudo apt-get install musl-tools
9999
100+ - name : Install Zig
101+ if : matrix.target == 'aarch64-unknown-linux-musl'
102+ uses : mlugg/setup-zig@v2
103+ with :
104+ version : 0.11.0
105+
100106 - name : Install Toolchain
101107 uses : dtolnay/rust-toolchain@4305c38b25d97ef35a8ad1f985ccf2d2242004f2 # stable
102108 with :
@@ -107,7 +113,23 @@ jobs:
107113 uses : Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6 # pin@v2
108114
109115 - name : Build
110- run : RUSTFLAGS="${{ matrix.rustflags }}" cargo build --target ${{ matrix.target }} --release
116+ run : |
117+ if [ "${{ matrix.target }}" = "aarch64-unknown-linux-musl" ]; then
118+ mkdir -p "$RUNNER_TEMP/bin"
119+
120+ printf '%s\n' '#!/usr/bin/env bash' 'args=()' 'skip_next=0' 'for arg in "$@"; do' ' if [ "$skip_next" = "1" ]; then' ' skip_next=0' ' continue' ' fi' ' case "$arg" in' ' --target=*|-target=*) continue ;;' ' --target|-target) skip_next=1; continue ;;' ' esac' ' args+=("$arg")' 'done' 'exec zig cc -target aarch64-linux-musl "${args[@]}"' > "$RUNNER_TEMP/bin/aarch64-linux-musl-gcc"
121+ printf '%s\n' '#!/usr/bin/env bash' 'exec zig ar "$@"' > "$RUNNER_TEMP/bin/aarch64-linux-musl-ar"
122+ printf '%s\n' '#!/usr/bin/env bash' 'exec zig ranlib "$@"' > "$RUNNER_TEMP/bin/aarch64-linux-musl-ranlib"
123+
124+ chmod +x "$RUNNER_TEMP/bin/aarch64-linux-musl-gcc" "$RUNNER_TEMP/bin/aarch64-linux-musl-ar" "$RUNNER_TEMP/bin/aarch64-linux-musl-ranlib"
125+
126+ export PATH="$RUNNER_TEMP/bin:$PATH"
127+ export CC_aarch64_unknown_linux_musl=aarch64-linux-musl-gcc
128+ export AR_aarch64_unknown_linux_musl=aarch64-linux-musl-ar
129+ export RANLIB_aarch64_unknown_linux_musl=aarch64-linux-musl-ranlib
130+ fi
131+
132+ RUSTFLAGS="${{ matrix.rustflags }}" cargo build --target ${{ matrix.target }} --release
111133 shell : bash
112134
113135 - name : Rename artifact (windows)
0 commit comments