feat(all): progress #9
This file contains hidden or 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: Build | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
jobs: | |
# Test MSRV | |
msrv: | |
name: MSRV | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out | |
uses: actions/checkout@v4 | |
- name: Set up Rust MSRV | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: 1.60.0 | |
- name: Set up Cache | |
uses: Swatinem/rust-cache@v2 | |
- name: Test MSRV | |
run: cargo check --all-features | |
# Test feature combinations | |
features: | |
name: Feature Testing | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out | |
uses: actions/checkout@v4 | |
- name: Set up Rust | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: stable | |
- name: Set up Cache | |
uses: Swatinem/rust-cache@v2 | |
- name: Test no features | |
run: cargo test --no-default-features | |
- name: Test futures only | |
run: cargo test --no-default-features --features futures | |
- name: Test tokio only | |
run: cargo test --no-default-features --features tokio | |
- name: Test futures + tokio | |
run: cargo test --no-default-features --features "futures,tokio" | |
- name: Test all features | |
run: cargo test --all-features | |
ci: | |
name: CI | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-latest] | |
toolchain: [stable] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Check out | |
uses: actions/checkout@v4 | |
- name: Set up ${{ matrix.toolchain }} Rust | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ matrix.toolchain }} | |
components: clippy, rustfmt | |
- name: Set up Cache | |
uses: Swatinem/rust-cache@v2 | |
- name: Install Tarpaulin | |
if: matrix.os == 'ubuntu-latest' | |
continue-on-error: true | |
run: cargo install cargo-tarpaulin | |
- name: Install & Run Semver | |
if: matrix.os == 'ubuntu-latest' | |
uses: obi1kenobi/cargo-semver-checks-action@v2 | |
with: | |
rust-toolchain: ${{ matrix.toolchain }} | |
feature-group: all-features | |
verbose: true | |
- name: Run Cargo:fmt | |
run: cargo fmt --all -- --check | |
- name: Run Cargo:clippy | |
run: cargo clippy --all-features -- -D warnings | |
- name: Run Cargo:test (default features) | |
run: cargo test --verbose | |
- name: Run Cargo:test (all features) | |
run: cargo test --verbose --all-features | |
- name: Run examples (std features only) | |
if: matrix.os == 'ubuntu-latest' | |
run: | | |
cargo run --example counter | |
cargo run --example progress | |
- name: Run Cargo:tarpaulin | |
if: matrix.os == 'ubuntu-latest' && matrix.toolchain == 'stable' | |
run: cargo tarpaulin --verbose --all-features --out Xml --output-dir ./coverage | |
- name: Upload Codecov | |
if: matrix.os == 'ubuntu-latest' && matrix.toolchain == 'stable' | |
uses: codecov/codecov-action@v4 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
files: ./coverage/cobertura.xml | |
verbose: true |