Test minimal versions in CI #304
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Rust CI | |
on: | |
push: | |
branches: [ master ] | |
pull_request: | |
branches: [ master ] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
rust: ["1.61.0", stable, beta, nightly] | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: dtolnay/rust-toolchain@nightly | |
if: ${{ matrix.rust == '1.61.0' }} | |
- name: Generate Cargo.lock with minimal-version dependencies | |
if: ${{ matrix.rust == '1.61.0' }} | |
run: cargo -Zminimal-versions generate-lockfile | |
- uses: dtolnay/rust-toolchain@v1 | |
with: | |
toolchain: ${{ matrix.rust }} | |
- name: Cache Cargo Dependencies | |
uses: Swatinem/rust-cache@v2 | |
with: | |
cache-on-failure: true | |
- name: build | |
run: cargo build -v | |
- name: test | |
if: ${{ matrix.rust != '1.61.0' }} | |
run: cargo test -v && cargo doc -v | |
rustfmt: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: dtolnay/rust-toolchain@stable | |
with: | |
components: rustfmt | |
- name: Run rustfmt check | |
run: cargo fmt -- --check | |
clippy: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: dtolnay/rust-toolchain@stable | |
with: | |
components: clippy | |
- run: cargo clippy --all-features # TODO: enable "-- -D warnings" once all outstanding clippy lints are fixed | |
verify_msrv: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install or use cached `cargo-msrv` | |
uses: baptiste0928/cargo-install@v1 | |
with: | |
crate: cargo-msrv | |
- name: Install MSRV Cargo.lock | |
run: mv Cargo.lock.msrv Cargo.lock | |
- name: Verify Minimum Rust Version | |
run: cargo-msrv verify |