Increase test coverage (#172) #385
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: Tests and Lints | |
on: | |
pull_request: | |
push: | |
env: | |
RUSTFLAGS: -Dwarnings | |
RUSTDOCFLAGS: -Dwarnings | |
jobs: | |
rust_check: | |
name: Rust check | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
all_features: ["", "--all-features"] | |
fail-fast: true | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install toolchain | |
uses: actions-rust-lang/setup-rust-toolchain@v1 | |
- name: cargo check | |
run: cargo check --bins --tests --lib ${{ matrix.all_features }} | |
rust_check_other_platforms: | |
name: Rust check | |
runs-on: ${{ matrix.platform }} | |
needs: ["rust_check", "rust_format"] | |
strategy: | |
matrix: | |
platform: [macOS-latest, windows-latest] | |
fail-fast: true | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install toolchain | |
uses: actions-rust-lang/setup-rust-toolchain@v1 | |
- name: cargo check | |
run: cargo check --bins --tests --lib --all-features | |
rust_format: | |
name: Rust format | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: true | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install toolchain | |
uses: actions-rust-lang/setup-rust-toolchain@v1 | |
with: | |
toolchain: stable | |
components: rustfmt | |
- name: cargo format | |
uses: actions-rust-lang/rustfmt@v1 | |
rust_lint: | |
name: Rust lint | |
runs-on: ubuntu-latest | |
needs: ["rust_check", "rust_format"] | |
strategy: | |
fail-fast: true | |
matrix: | |
toolchain: [null, "stable", "beta", "nightly"] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install toolchain | |
uses: actions-rust-lang/setup-rust-toolchain@v1 | |
with: | |
components: clippy | |
toolchain: ${{matrix.toolchain}} | |
- name: cargo clippy | |
run: cargo clippy --bins --tests --lib --all-features | |
rust_test: | |
name: Rust test | |
runs-on: ubuntu-latest | |
needs: ["rust_check", "rust_format"] | |
strategy: | |
fail-fast: true | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install toolchain | |
uses: actions-rust-lang/setup-rust-toolchain@v1 | |
- name: cargo test | |
run: cargo test --all-features | |
rust_bench: | |
name: Rust check and lint benchmarks | |
runs-on: ubuntu-latest | |
needs: ["rust_check", "rust_format"] | |
strategy: | |
fail-fast: true | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install toolchain | |
uses: actions-rust-lang/setup-rust-toolchain@v1 | |
with: | |
toolchain: nightly | |
components: clippy | |
- name: cargo check | |
run: cargo check --all-features --benches | |
- name: cargo clippy | |
run: cargo clippy --all-features --benches | |
rust_doc: | |
name: Rust doc | |
runs-on: ubuntu-latest | |
needs: ["rust_check", "rust_format"] | |
strategy: | |
fail-fast: true | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install toolchain | |
uses: actions-rust-lang/setup-rust-toolchain@v1 | |
with: | |
toolchain: stable | |
- name: cargo doc | |
run: cargo doc --all-features | |
check_sync_readme: | |
needs: ["rust_check", "rust_format"] | |
name: Check sync readme | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: true | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install toolchain | |
uses: actions-rust-lang/setup-rust-toolchain@v1 | |
with: | |
toolchain: stable | |
- name: Install cargo-sync-readme | |
run: cargo install cargo-sync-readme | |
- name: Sync readme check | |
run: cargo sync-readme --check | |
check_cli: | |
needs: ["rust_check", "rust_format"] | |
name: Check CLI | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: true | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install toolchain | |
uses: actions-rust-lang/setup-rust-toolchain@v1 | |
- name: CLI | |
uses: GuillaumeFalourd/[email protected] | |
with: | |
command_line: cargo run -- p = 2\; p + 3 | |
contains: 5 | |
expected_result: PASSED | |
coveralls_io: | |
needs: [rust_test] | |
name: Coverage | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install toolchain | |
uses: actions-rust-lang/setup-rust-toolchain@v1 | |
with: | |
toolchain: nightly | |
- name: Install cargo-tarpaulin | |
run: cargo install cargo-tarpaulin | |
- name: Coverage Report with tarpaulin | |
run: cargo tarpaulin --all-features --out Lcov --tests --doc -- --test-threads 1 | |
- name: Upload Coverage | |
uses: coverallsapp/github-action@master | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
path-to-lcov: ./lcov.info |