name: Test - Rust
on:
push:
branches:
- main
paths:
- "**/*.rs"
- ".github/workflows/test-rust.yaml"
pull_request:
branches:
- main
paths:
- "**/*.rs"
- ".github/workflows/test-rust.yaml"
schedule:
- cron: "0 0 * * 0"
workflow_dispatch:
workflow_call:
jobs:
test:
name: cargo test (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- ubuntu-24.04-arm
- macos-latest
- windows-latest
- windows-11-arm
env:
SCCACHE_GHA_ENABLED: "true"
RUSTC_WRAPPER: "sccache"
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@stable
- uses: mozilla-actions/sccache-action@v0.0.10
- name: Run tests
run: cargo test --verbose
- name: Run tests (no-default-features)
if: runner.os != 'Windows'
run: cargo test --verbose --no-default-features
- name: Check serde (no-default-features)
run: cargo check --verbose --no-default-features --features serde