prep for initial release #36
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 | |
on: [ push, pull_request ] | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
check: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
pwd: | |
- . | |
- examples | |
steps: | |
- uses: actions/checkout@v4 | |
- run: | | |
rustup toolchain install nightly --profile minimal --component rustfmt --component clippy | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
key: ${{ matrix.pwd }} | |
workspaces: ${{ matrix.pwd }} | |
- name: clippy | |
working-directory: ${{ matrix.pwd }} | |
run: | | |
cargo clippy --all --all-targets --all-features | |
- name: rustfmt | |
working-directory: ${{ matrix.pwd }} | |
run: | | |
cargo fmt --all -- --check | |
check-docs: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- run: | | |
rustup toolchain install stable --profile minimal | |
- uses: Swatinem/rust-cache@v2 | |
- name: cargo doc | |
env: | |
RUSTDOCFLAGS: "-D rustdoc::broken-intra-doc-links" | |
run: | | |
cargo doc --all-features --no-deps | |
test: | |
needs: check | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- run: | | |
rustup toolchain install stable --profile minimal | |
rustup toolchain install nightly --profile minimal | |
cargo install cargo-tarpaulin | |
- uses: Swatinem/rust-cache@v2 | |
- uses: taiki-e/install-action@cargo-llvm-cov | |
- uses: taiki-e/install-action@nextest | |
- name: Run tests | |
run: | | |
cargo nextest run --all --all-features --all-targets | |
- name: Generate code coverage | |
run: | | |
cargo tarpaulin -olcov --output-dir ./coverage | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v3 | |
env: | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
with: | |
files: ./coverage/lcov.info | |
fail_ci_if_error: true | |
test-docs: | |
needs: check | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- run: | | |
rustup toolchain install stable --profile minimal | |
- uses: Swatinem/rust-cache@v2 | |
- name: Run doc tests | |
run: | | |
cargo test --all-features --doc |