name: Run tests, check code
on: [push, pull_request]
env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: 1
RUST_LOG: info
jobs:
tests:
runs-on: ubuntu-latest
steps:
- name: Clone Git repository
uses: actions/checkout@v4
with:
submodules: true
- name: Install Rust
uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
- name: Run tests
run: |
cargo test --workspace --all-features
check-code:
runs-on: ubuntu-latest
steps:
- name: Clone Git repository
uses: actions/checkout@v4
with:
submodules: true
- name: Install Rust
uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
components: rustfmt, clippy
- name: rustfmt
run: |
cargo fmt --all --check
- name: clippy
run: |
cargo clippy --all-targets --all-features -- -D warnings
- name: Build docs
run: |
cargo rustdoc --all-features -- -D warnings
- name: Upload docs
uses: actions/upload-artifact@v4
with:
name: docs
path: target/doc/*
- name: packaging
run: |
cargo package --verbose
msrv:
strategy:
matrix:
rust-version: ["1.31.0"]
runs-on: ubuntu-latest
steps:
- name: Clone Git repository
uses: actions/checkout@v4
with:
submodules: true
- name: Install Rust version ${{ matrix.rust-version }}
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust-version }}
- name: Check whether it compiles
run: |
cargo check --all-features --verbose
miri:
runs-on: ubuntu-latest
steps:
- name: Clone Git repository
uses: actions/checkout@v4
with:
submodules: true
- name: Install Rust
uses: dtolnay/rust-toolchain@master
with:
toolchain: nightly
components: miri
- name: Run Miri
run: |
cargo miri test