ci: run ci on all pushes, not just to main #16
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: | |
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/ |