name: Unit Tests
on:
pull_request:
push:
branches:
- main
permissions:
contents: read
env:
CARGO_TERM_COLOR: always
jobs:
unit-tests:
name: Rust ${{ matrix.toolchain }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
toolchain: [stable, "1.88"]
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set up Rust
run: |
rustup toolchain install ${{ matrix.toolchain }} --profile minimal
rustup default ${{ matrix.toolchain }}
- name: Run unit tests
run: cargo test --locked
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set up Rust
run: |
rustup toolchain install stable --profile minimal --component rustfmt,clippy
rustup default stable
- name: Check formatting
run: cargo fmt --check
- name: Run clippy
run: cargo clippy --locked --all-targets -- -D warnings
- name: Check native-tls build
run: cargo check --locked --no-default-features --features native-tls