name: Tests
permissions:
contents: read
pull-requests: write
on:
push:
branches: [ master ]
paths:
- '**/*.rs'
- 'Cargo.toml'
- 'Cargo.lock'
pull_request:
branches: [ master ]
paths:
- '**/*.rs'
- 'Cargo.toml'
- 'Cargo.lock'
jobs:
test:
name: Test on ${{ matrix.os }} with Rust ${{ matrix.rust }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
rust: [stable, beta]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Rust (${{ matrix.rust }})
uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ matrix.rust }}
- name: Cache Cargo
uses: Swatinem/rust-cache@v2
- name: Build
run: cargo build --verbose
- name: Run Tests
run: cargo test --verbose
- name: Cargo Check
run: cargo check --verbose