name: CI
on: [push, pull_request]
jobs:
test:
name: Test Suite
runs-on: ubuntu-latest
strategy:
matrix:
rust:
- stable
- beta
- nightly
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust }}
override: true
- name: Run cargo test
run: cargo test
test-msrv:
name: Test Suite
runs-on: ubuntu-latest
strategy:
matrix:
rust:
- 1.19.0 - 1.20.0 - 1.31.0 - 1.36.0 - 1.40.0 - 1.51.0 - stable
- beta
- nightly
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust }}
override: true
- name: Run cargo test
run: cargo test --lib
nightly:
name: Test Suite (nightly features)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: nightly
override: true
- name: Run cargo test
run: cargo test --all-features --lib
miri:
name: Test Suite (Miri)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install Miri
run: |
rustup toolchain install nightly --component miri
rustup override set nightly
cargo miri setup
- name: Test with Miri
run: |
cargo miri test
cargo miri test --all-features
style:
name: lints and formatting
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: 1.51.0 components: rustfmt
override: true
- name: Check warnings
run: RUSTFLAGS="-D warnings" cargo check --all-targets
- name: Check formatting
run: cargo fmt -- --check