Merge pull request #358 from mstange/rust-180-cross #1229
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Rust | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
format: | |
name: format | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- run: rustup update stable | |
- name: Check formatting | |
run: cargo fmt --all --check --verbose | |
build: | |
name: build & test | |
strategy: | |
matrix: | |
target: | |
- x86_64-unknown-linux-gnu | |
- x86_64-unknown-linux-musl | |
- aarch64-apple-darwin | |
- x86_64-apple-darwin | |
- x86_64-pc-windows-msvc | |
include: | |
- target: x86_64-unknown-linux-gnu | |
os: ubuntu-latest | |
- target: x86_64-unknown-linux-musl | |
os: ubuntu-latest | |
is_musl: true | |
- target: x86_64-apple-darwin | |
os: macos-latest | |
- target: aarch64-apple-darwin | |
os: macos-latest | |
- target: x86_64-pc-windows-msvc | |
os: windows-latest | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install Rust | |
#run: rustup target add ${{ matrix.target }} | |
run: rustup install 1.80 && rustup default 1.80 && rustup target add ${{ matrix.target }} && rustup component add clippy rustfmt | |
- if: ${{ matrix.is_musl }} | |
name: Install musl-tools | |
run: sudo apt-get install -y musl-tools | |
- name: Check samply-api with default features | |
run: cargo check -p samply-api --verbose --target=${{ matrix.target }} | |
- name: Build | |
run: cargo build --workspace --verbose --target=${{ matrix.target }} | |
- name: Test | |
run: cargo test --workspace --verbose --target=${{ matrix.target }} | |
- name: Clippy | |
run: cargo clippy --workspace --verbose --target=${{ matrix.target }} -- -Dwarnings | |
cross-compile: | |
name: cross | |
strategy: | |
matrix: | |
target: | |
- aarch64-unknown-linux-gnu | |
- aarch64-linux-android | |
include: | |
- target: aarch64-unknown-linux-gnu | |
os: ubuntu-latest | |
- target: aarch64-linux-android | |
os: ubuntu-latest | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install Rust | |
# 1.81 causes issues when running the tests | |
#run: rustup update stable && rustup default stable && rustup target add ${{ matrix.target }} | |
run: rustup install 1.80 && rustup default 1.80 && rustup target add ${{ matrix.target }} && rustup component add clippy rustfmt | |
- name: Install cross | |
# Latest cross release 0.2.5 fails to link binaries for the `aarch64-linux-android` target. A release is pending. | |
# Use a specific commit until the release is out. See https://github.com/cross-rs/cross/issues/1222 | |
run: cargo install --git https://github.com/cross-rs/cross.git --rev 44011c8 cross | |
- name: Build | |
run: cross build --workspace --verbose --target=${{ matrix.target }} | |
- name: Test | |
run: cross test --workspace --verbose --target=${{ matrix.target }} | |
- name: Clippy | |
run: cross clippy --workspace --verbose --target=${{ matrix.target }} -- -Dwarnings | |
aarch64-win: | |
name: windows aarch64 | |
strategy: | |
matrix: | |
target: | |
- aarch64-pc-windows-msvc | |
include: | |
- target: aarch64-pc-windows-msvc | |
os: windows-latest | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install Rust | |
#run: rustup target add ${{ matrix.target }} | |
run: rustup install 1.80 && rustup default 1.80 && rustup target add ${{ matrix.target }} && rustup component add clippy rustfmt | |
- name: Check | |
run: cargo check --workspace --verbose --target=${{ matrix.target }} | |
- name: Clippy | |
run: cargo clippy --workspace --verbose --target=${{ matrix.target }} -- -Dwarnings |