name: Test
on:
push:
branches: [master, develop, main]
pull_request:
branches: [master, develop, main]
jobs:
test:
strategy:
matrix:
rust: [stable, "1.82"]
os: [ubuntu-latest]
include:
- rust: stable
os: macos-latest
- rust: stable
os: windows-latest
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v5
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}
- name: Fetch testdata fixtures
run: make testdata
- run: cargo test
if: matrix.rust == 'stable'
- name: Remove bench deps for MSRV
if: matrix.rust != 'stable'
run: |
sed -i '/\[dev-dependencies\]/,/^\[/{/criterion/d}' Cargo.toml
sed -i '/\[\[bench\]\]/,/^$/d' Cargo.toml
- run: cargo test
if: matrix.rust != 'stable'
- run: cargo test --features serde
if: matrix.rust == 'stable'
coverage:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: dtolnay/rust-toolchain@stable
- name: Fetch testdata fixtures
run: make testdata
- uses: taiki-e/install-action@cargo-llvm-cov
- run: cargo llvm-cov --features serde --lcov --output-path lcov.info
- uses: codecov/codecov-action@v5
with:
files: lcov.info
token: ${{ secrets.CODECOV_TOKEN }}
slug: ${{ github.repository }}
fail_ci_if_error: false