test #103
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: test | |
on: | |
push: | |
pull_request: | |
env: | |
CARGO_TERM_COLOR: always | |
RUST_BACKTRACE: full | |
jobs: | |
test: | |
name: Build & test | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- ubuntu-latest | |
- macos-latest | |
- windows-latest | |
rust: | |
- stable | |
- beta | |
- nightly | |
python-version: | |
- "3.7" | |
- "3.8" | |
- "3.9" | |
- "3.10" | |
- "3.11" | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: checkout | |
uses: actions/checkout@v4 | |
- name: Install Rust ${{ matrix.rust }} | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ matrix.rust }} | |
- name: Install Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
architecture: x64 | |
- name: Restore cache | |
uses: Swatinem/rust-cache@v2 | |
- name: Build & test | |
run: cargo test --all-features | |
test-minimal-versions: | |
name: Build with the minimal supported versions | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
# MSRV as set in Cargo.toml | |
toolchain: 1.48.0 | |
default: true | |
profile: minimal | |
- name: Install Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.7" | |
architecture: x64 | |
- name: Restore cache | |
uses: Swatinem/rust-cache@v2 | |
- name: Install the minimal versions of dependencies | |
env: | |
# `-Z minimal-versions` is unstable, so we set | |
# `RUSTC_BOOTSTRAP=1` to be able to use it on stable | |
RUSTC_BOOTSTRAP: "1" | |
run: cargo update -Z minimal-versions | |
- name: Build & test | |
run: cargo test --all-features | |
rustfmt: | |
name: Check formatting | |
runs-on: ubuntu-latest | |
steps: | |
- name: checkout | |
uses: actions/checkout@v4 | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@stable | |
- run: cargo fmt --all -- --check | |
links: | |
name: Check documentation links | |
runs-on: ubuntu-latest | |
steps: | |
- name: checkout | |
uses: actions/checkout@v4 | |
- name: Install Rust stable | |
uses: dtolnay/rust-toolchain@stable | |
- name: Restore cache | |
uses: Swatinem/rust-cache@v2 | |
- name: Check links | |
run: cargo rustdoc --all-features -- -D warnings | |
clippy: | |
name: Clippy lints | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install Rust stable | |
uses: dtolnay/rust-toolchain@stable | |
- name: Restore cache | |
uses: Swatinem/rust-cache@v2 | |
- name: Run clippy linter | |
run: cargo clippy --all --tests -- -D clippy::all -D warnings | |
coverage: | |
name: Coverage | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install Rust nightly | |
uses: dtolnay/rust-toolchain@nightly | |
- name: Restore cache | |
uses: Swatinem/rust-cache@v2 | |
- name: Download cargo-tarpaulin from the GitHub releases | |
run: | | |
mkdir -p "${HOME}/.local/bin" | |
curl -sL https://github.com/xd009642/tarpaulin/releases/download/0.24.0/cargo-tarpaulin-x86_64-unknown-linux-gnu.tar.gz | tar xvz -C "${HOME}/.local/bin" | |
echo "$HOME/.local/bin" >> $GITHUB_PATH | |
- name: Run cargo-tarpaulin | |
run: cargo tarpaulin --all-features --run-types Doctests,Tests --out Xml | |
- name: Upload to codecov.io | |
uses: codecov/codecov-action@c16abc29c95fcf9174b58eb7e1abf4c866893bc8 # v4.1.1 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
- name: Archive code coverage results | |
uses: actions/upload-artifact@v4 | |
with: | |
name: code-coverage-report | |
path: cobertura.xml | |
retention-days: 30 |