diff --git a/.github/workflows/package.yml b/.github/workflows/package.yml index 1aa47cb0eae..9e3a92ee9bd 100644 --- a/.github/workflows/package.yml +++ b/.github/workflows/package.yml @@ -18,7 +18,7 @@ jobs: # WARNING - do not upgrade this runner to 24.04 or the self hosted runners because it will break downloads for # anyone who uses a linux distro that doesn't have glibc >= GLIBC_2.38 - { name: x86_64 Linux, target: x86_64-unknown-linux-gnu, runner: ubuntu-22.04 } - - { name: aarch64 Linux, target: aarch64-unknown-linux-gnu, runner: arm-runner } + - { name: aarch64 Linux, target: aarch64-unknown-linux-gnu, runner: ubuntu-22.04 } # Disabled because musl builds weren't working and we didn't want to investigate. See https://github.com/clockworklabs/SpacetimeDB/pull/2964. # - { name: x86_64 Linux musl, target: x86_64-unknown-linux-musl, runner: bare-metal, container: alpine } # FIXME: arm musl build. "JavaScript Actions in Alpine containers are only supported on x64 Linux runners" @@ -42,6 +42,20 @@ jobs: if: endsWith(matrix.target, '-musl') run: apk add gcc g++ bash curl linux-headers perl git make + - name: Install aarch64 cross-compilation toolchain + if: matrix.target == 'aarch64-unknown-linux-gnu' + run: | + sudo apt-get update -q + sudo apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu + + - name: Set aarch64 cross-compilation env vars + if: matrix.target == 'aarch64-unknown-linux-gnu' + run: | + 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 + echo "AR_aarch64_unknown_linux_gnu=aarch64-linux-gnu-ar" >> $GITHUB_ENV + - name: Install Rust uses: dsherret/rust-toolchain-file@v1 - name: Set default rust toolchain