Skip to content

ci: run ci on all pushes, not just to main #16

ci: run ci on all pushes, not just to main

ci: run ci on all pushes, not just to main #16

Workflow file for this run

name: ci
on: [push, pull_request]
env:
RUST_BACKTRACE: 1
jobs:
style:
name: Check Style
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Rust (nightly)
uses: dtolnay/rust-toolchain@master
with:
toolchain: nightly
components: rustfmt
- run: cargo fmt --all --check
check-and-test:
name: Run Clippy Checks and Tests
needs: [style]
strategy:
matrix:
os:
- ubuntu-latest
# - macos-latest
# - windows-latest
rust:
# - stable
# - beta
- nightly
runs-on: ${{ matrix.os }}
env:
RUSTFLAGS: "-D warnings"
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Rust (${{ matrix.rust }})
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}
components: clippy
- name: Setup Cache
uses: Swatinem/rust-cache@v2
with:
prefix-key: v0-rust
shared-key: ${{ matrix.os }}-${{ matrix.rust }}
- name: Run Clippy (no default features)
run: cargo clippy --workspace --tests --no-default-features
- name: Run Clippy (default features)
run: cargo clippy --workspace --tests
- name: Run Clippy (all features)
run: cargo clippy --workspace --tests --all-features
- name: Run Tests (no default features)
run: cargo test --workspace --no-default-features
- name: Run Tests (default features)
run: cargo test --workspace
- name: Run Tests (all features)
run: cargo test --workspace --all-features
coverage:
name: Run tests with coverage
needs: [check-and-test]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@master
with:
toolchain: nightly
components: llvm-tools-preview
- name: Setup Cache
uses: Swatinem/rust-cache@v2
- name: Install grcov
run: cargo install grcov
- name: Run Rust tests with coverage
run: .github/scripts/collect-coverage.sh
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v4.0.1
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: target/debug/coverage/lcov
flags: unittests
- name: Archive code coverage results
uses: actions/upload-artifact@v4
with:
name: code-coverage-report
path: target/debug/coverage/html/