name: CI
on: [push]
jobs:
check:
name: Check
runs-on: ubuntu-latest
strategy:
matrix:
toolchain: [stable, beta, nightly]
steps:
- name: Checkout sources
uses: actions/checkout@v6
- name: Install ${{ matrix.toolchain }} toolchain
run: rustup update ${{ matrix.toolchain }} && rustup default ${{ matrix.toolchain }}
- name: Run cargo check
run: cargo check --all
test:
name: Test Suite
runs-on: ubuntu-latest
strategy:
matrix:
toolchain: [stable, beta, nightly]
steps:
- name: Checkout sources
uses: actions/checkout@v6
- uses: erlef/setup-beam@v1
with:
otp-version: 26.0
- name: Install ${{ matrix.toolchain }} toolchain
run: rustup update ${{ matrix.toolchain }} && rustup default ${{ matrix.toolchain }}
- name: Run cargo test
run: cargo test --all
env:
RUST_BACKTRACE: 1
lints:
name: Lints
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v6
- name: Install stable toolchain
run: rustup update stable && rustup default stable && rustup component add rustfmt clippy
- name: Run cargo fmt
run: cargo fmt --all -- --check
- name: Run cargo clippy
run: cargo clippy --all -- -D warnings