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: Enable more cross-compiled builds #401

Merged
merged 8 commits into from
Apr 16, 2024
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
26 changes: 24 additions & 2 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,13 @@ jobs:
matrix:
build:
- android-aarch64
- linux-aarch64-gnu
- linux-aarch64-musl
- linux-armv7-gnueabihf
- linux-armv7-musleabihf
- linux-x64-gnu
- linux-x64-musl
- macos-aarch64
- macos-x64
- windows-x64-msvc
rust:
Expand All @@ -72,12 +77,29 @@ jobs:
- build: android-aarch64
target: aarch64-linux-android
cargo: cross
- build: linux-aarch64-gnu
target: aarch64-unknown-linux-gnu
cargo: cross
- build: linux-aarch64-musl
target: aarch64-unknown-linux-musl
cargo: cross
- build: linux-armv7-gnueabihf
target: armv7-unknown-linux-gnueabihf
cargo: cross
- build: linux-armv7-musleabihf
target: armv7-unknown-linux-musleabihf
cargo: cross
- build: linux-x64-gnu
target: x86_64-unknown-linux-gnu
- build: linux-x64-musl
target: x86_64-unknown-linux-musl
- build: macos-aarch64
# Go back ot `macos-latest` after migration is complete
# See https://github.blog/changelog/2024-04-01-macos-14-sonoma-is-generally-available-and-the-latest-macos-runner-image/.
os: macos-14
target: aarch64-apple-darwin
- build: macos-x64
os: macos-latest
os: macos-14
target: x86_64-apple-darwin
- build: windows-x64-msvc
os: windows-latest
Expand All @@ -95,7 +117,7 @@ jobs:

- name: Install cross
if: matrix.cargo == 'cross'
# The latest realese of `cross` is not able to build/link for `aarch64-linux-android`
# The latest release of `cross` is not able to build/link for `aarch64-linux-android`
# See: https://github.com/cross-rs/cross/issues/1222
# This is fixed on `main` but not yet released. To avoid a breakage somewhen in the future
# pin the cross revision used to the latest HEAD at 04/2024.
Expand Down
47 changes: 36 additions & 11 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -52,25 +52,45 @@ jobs:
strategy:
matrix:
build:
- aarch64-linux-android
- android-aarch64
- linux-aarch64-gnu
- linux-aarch64-musl
- linux-armv7-gnueabihf
- linux-armv7-musleabihf
- linux-x64-gnu
- linux-x64-musl
- macos-aarch64
- macos-x64
- windows-x64-msvc
include:
- os: ubuntu-latest # default
- cargo: cargo # default; overwrite with `cross` if necessary
- build: aarch64-linux-android
os: ubuntu-latest
- build: android-aarch64
target: aarch64-linux-android
cargo: cross
- build: linux-aarch64-gnu
target: aarch64-unknown-linux-gnu
cargo: cross
- build: linux-aarch64-musl
target: aarch64-unknown-linux-musl
cargo: cross
- build: linux-armv7-gnueabihf
target: armv7-unknown-linux-gnueabihf
cargo: cross
- build: linux-armv7-musleabihf
target: armv7-unknown-linux-musleabihf
cargo: cross
- build: linux-x64-gnu
os: ubuntu-latest
target: x86_64-unknown-linux-gnu
- build: linux-x64-musl
os: ubuntu-latest
target: x86_64-unknown-linux-musl
- build: macos-aarch64
# Go back ot `macos-latest` after migration is complete
# See https://github.blog/changelog/2024-04-01-macos-14-sonoma-is-generally-available-and-the-latest-macos-runner-image/.
os: macos-14
target: aarch64-apple-darwin
- build: macos-x64
os: macos-latest
os: macos-14
target: x86_64-apple-darwin
- build: windows-x64-msvc
os: windows-latest
Expand All @@ -86,13 +106,18 @@ jobs:
toolchain: stable
targets: ${{ matrix.target }}

- name: Install musl-tools
if: matrix.target == 'x86_64-unknown-linux-musl'
run: sudo apt-get install -y --no-install-recommends musl-tools

- name: Install cross
if: matrix.cargo == 'cross'
run: cargo install --git https://github.com/cross-rs/cross.git --rev 085092c cross
# The latest release of `cross` is not able to build/link for `aarch64-linux-android`
# See: https://github.com/cross-rs/cross/issues/1222
# This is fixed on `main` but not yet released. To avoid a breakage somewhen in the future
# pin the cross revision used to the latest HEAD at 04/2024.
# Go back to taiki-e/install-action once cross 0.3 is released.
uses: taiki-e/cache-cargo-install-action@v1
with:
tool: cross
git: https://github.com/cross-rs/cross.git
rev: 085092c

- name: Build release binary
shell: bash
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
* Add PID column to the process table #379 - @notjedi
* CI: add builds for target `aarch64-linux-android` #384 - @flxo
* CI: Keep GitHub Actions up to date with GitHub's Dependabot #403 - @cclauss
* CI: Enable more cross-compiled builds #401 - @cyqsimon

## Changed

Expand Down
2 changes: 2 additions & 0 deletions Cross.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[build.env]
passthrough = ["BANDWHICH_GEN_DIR"]
Loading