54 lines
1.5 KiB
YAML
54 lines
1.5 KiB
YAML
name: Coverage
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
pull_request:
|
|
|
|
env:
|
|
CARGO_TERM_COLOR: always
|
|
RUST_BACKTRACE: full
|
|
|
|
jobs:
|
|
coverage:
|
|
name: Coverage
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Install Rust
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: nightly
|
|
profile: minimal
|
|
default: true
|
|
|
|
- name: Pre-installing grcov
|
|
uses: actions-rs/install@v0.1
|
|
with:
|
|
crate: grcov
|
|
use-tool-cache: true
|
|
|
|
- name: Restore cache
|
|
uses: Swatinem/rust-cache@v1
|
|
|
|
- name: Run tests
|
|
run: cargo test --all --all-features
|
|
env:
|
|
CARGO_INCREMENTAL: '0'
|
|
RUSTFLAGS: '-Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Coverflow-checks=off -Cpanic=abort -Zpanic_abort_tests'
|
|
RUSTDOCFLAGS: '-Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Coverflow-checks=off -Cpanic=abort -Zpanic_abort_tests'
|
|
# This seems not to work, the C code can't seem to find the gcov functions. By not providing this, we probably give up coverage from these :-(
|
|
#CFLAGS: --coverage
|
|
#CXXFLAGS: --coverage
|
|
|
|
- name: Generate coverage
|
|
uses: actions-rs/grcov@v0.1
|
|
|
|
- name: Upload to codecov.io
|
|
uses: codecov/codecov-action@5a8bb4701eca7ba3673f21664b887f652c58d0a3
|
|
with:
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|