name: CI
on:
push:
pull_request:
workflow_dispatch:
permissions:
contents: read
env:
RUSTFLAGS: -Dwarnings
jobs:
rust:
name: ${{ format('Rust {0}', matrix.name) }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- name: Ubuntu
os: ubuntu-latest
rust: nightly
- name: macOS
os: macos-latest
rust: nightly
steps:
- name: Checkout repository
uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{matrix.rust}}
- name: Test (Debug)
run: cargo test -- --nocapture
- name: Test (Rlease)
run: cargo test --release -- --nocapture
aarch64:
name: Rust aarch64
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: nightly
- uses: taiki-e/install-action@v2
with:
tool: cross
- name: Test (Debug)
run: cross test --target aarch64-unknown-linux-gnu -- --nocapture
- name: Test (Rlease)
run: cross test --release --target aarch64-unknown-linux-gnu -- --nocapture
clippy:
name: Clippy & Rustfmt
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: nightly
components: clippy, rustfmt
- run: cargo clippy --all-targets
- run: cargo fmt --check