name: CI
on:
push:
pull_request:
jobs:
test:
name: Test (${{ matrix.os }} / ${{ matrix.rust }})
runs-on: ${{ matrix.os }}
continue-on-error: ${{ matrix.rust == 'nightly' }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
rust: [stable, beta, nightly]
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}
- run: cargo test
- run: cargo test --features serde
- run: cargo test --release
- run: cargo test --features serde --release
coverage:
name: Coverage
runs-on: ubuntu-latest
container:
image: xd009642/tarpaulin:develop-nightly
options: --security-opt seccomp=unconfined
steps:
- uses: actions/checkout@v4
- name: Run coverage (default features)
run: cargo tarpaulin --tests --doc --out Lcov --output-dir coverage-default
- name: Run coverage (serde feature)
run: cargo tarpaulin --tests --doc --features serde --out Lcov --output-dir coverage-serde
- name: Upload to Coveralls
uses: coverallsapp/github-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
files: coverage-default/lcov.info coverage-serde/lcov.info