name: Test
on:
push:
branches:
- main
pull_request:
branches:
- main
env:
RUST_BACKTRACE: 1
defaults:
run:
shell: bash
jobs:
test:
strategy:
fail-fast: false
matrix:
target:
- x86_64-unknown-linux-gnu
- i686-unknown-linux-gnu
- aarch64-unknown-linux-gnu
- arm-unknown-linux-gnueabi
- arm-unknown-linux-gnueabihf
- armv7-unknown-linux-gnueabi
- armv7-unknown-linux-gnueabihf
- loongarch64-unknown-linux-gnu
- powerpc-unknown-linux-gnu
- powerpc64-unknown-linux-gnu
- powerpc64le-unknown-linux-gnu
- riscv64gc-unknown-linux-gnu
- sparc64-unknown-linux-gnu
- x86_64-pc-windows-msvc
- x86_64-pc-windows-gnu
- i686-pc-windows-msvc
- x86_64-apple-darwin
- aarch64-apple-darwin
include:
- os: ubuntu-latest
cross: true
- target: x86_64-unknown-linux-gnu
cross: false
- target: x86_64-pc-windows-msvc
os: windows-latest
cross: false
- target: x86_64-pc-windows-gnu
os: windows-latest
cross: false
- target: i686-pc-windows-msvc
os: windows-latest
cross: false
- target: x86_64-apple-darwin
os: macos-latest
cross: false
- target: aarch64-apple-darwin
os: macos-latest
cross: false
runs-on: ${{ matrix.os }}
timeout-minutes: 45
env:
CARGO_CMD: cargo
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}
- name: Setup cross
if: ${{ matrix.cross }}
run: |
cargo install cross --git https://github.com/cross-rs/cross
cross --version
printf 'CARGO_CMD=cross\n' >> $GITHUB_ENV
- name: Test
run: ${CARGO_CMD} test --all-features --target ${{ matrix.target }} --verbose