name: Rust
on: [push, pull_request]
env:
CARGO_TERM_COLOR: always
jobs:
ci:
needs: [build, test-matrix, coverage]
name: CI
runs-on: "ubuntu-latest"
steps:
- name: Done
run: exit 0
build:
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Build
run: cargo build --verbose
test-matrix:
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
build: [debug, release]
simd: [enabled, disabled]
include:
- simd: enabled
simd_flag: ""
- simd: disabled
simd_flag: "-F nosimd"
- build: debug
build_flag: ""
- build: release
build_flag: "--release"
name: Test ${{ matrix.os }} (${{ matrix.build }}, SIMD ${{ matrix.simd }})
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Run Tests
run: cargo test --verbose ${{ matrix.build_flag }} ${{ matrix.simd_flag }}
coverage:
name: Coverage
runs-on: "ubuntu-latest"
steps:
- uses: actions/checkout@v3
- name: Install LLVM-Coverage
uses: taiki-e/install-action@cargo-llvm-cov
- name: Measure Coverage
run: cargo llvm-cov --lcov --output-path coverage.lcov
- name: Upload Coverage
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./coverage.lcov