chore: extract inline benches to a separate directory #556
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: CI | |
on: [push, pull_request] | |
env: | |
CARGO_TERM_COLOR: always | |
# Skip incremental build and debug info generation in CI | |
CARGO_INCREMENTAL: 0 | |
CARGO_PROFILE_DEV_DEBUG: 0 | |
jobs: | |
accept: | |
name: Accept | |
runs-on: ubuntu-latest | |
needs: [lint, test] | |
steps: | |
- name: Accept | |
run: true | |
lint: | |
name: Lint | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install rust | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: nightly | |
components: rustfmt, clippy | |
- name: Cache build | |
uses: Swatinem/rust-cache@v1 | |
with: | |
key: cache-v1 | |
- name: Check formatting | |
run: cargo fmt --all -- --check | |
- uses: actions-rs/clippy-check@v1 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
args: --locked --workspace --all-features --all-targets | |
- name: Check docs | |
run: cargo doc --locked --workspace --all-features --no-deps --document-private-items | |
test: | |
name: Test | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
rust: | |
- stable | |
- nightly | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install rust | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ matrix.rust }} | |
- name: Cache build | |
uses: Swatinem/rust-cache@v1 | |
with: | |
key: cache-v1 | |
# Cargo doc test is not included in `--all-targets` so we call it separately. | |
# See <https://github.com/rust-lang/cargo/issues/6669> | |
# Cargo doc test also doesn't support `--no-run`, so we run it but | |
# have it just print `--help`. | |
- name: Build tests | |
run: | | |
cargo test --locked --workspace --all-features --all-targets --no-run | |
cargo test --locked --workspace --all-features --doc -- --help | |
- name: Run tests | |
run: | | |
cargo test --locked --workspace --all-features --all-targets -- --nocapture | |
cargo test --locked --workspace --all-features --doc -- --nocapture | |
codecov: | |
# See <https://doc.rust-lang.org/nightly/unstable-book/compiler-flags/source-based-code-coverage.html> | |
name: Coverage | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install rust | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: nightly | |
components: llvm-tools-preview | |
- name: Cache build | |
uses: Swatinem/rust-cache@v1 | |
with: | |
key: cache-v1 | |
- name: Install cargo-llvm-cov | |
uses: taiki-e/install-action@cargo-llvm-cov | |
- name: Build with code coverage | |
run: | | |
cargo llvm-cov --no-report --locked --workspace --all-features --all-targets | |
cargo llvm-cov --no-report --locked --workspace --all-features --doc | |
- name: Generate code coverage | |
env: | |
# Covered tests are slower, so reduce the test load. (We also shouldn't | |
# depend too much on case generation for coverage). | |
PROPTEST_CASES: 5 | |
run: | | |
# Generate profiles, but do not merge them | |
cargo llvm-cov --no-report --locked --workspace --all-features --all-targets -- --nocapture | |
cargo llvm-cov --no-report --locked --workspace --all-features --doc -- --nocapture | |
- name: Merge profiles | |
run: cargo llvm-cov --no-run --lcov --output-path lcov.info | |
- name: Submit to codecov.io | |
uses: codecov/[email protected] | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} # Optional for public repos | |
files: lcov.info | |
fail_ci_if_error: true | |
verbose: true | |
security_audit: | |
name: Dependency Security Audit | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Rust | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: nightly | |
- uses: actions-rs/audit-check@v1 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} |