67 lines
1.8 KiB
YAML
67 lines
1.8 KiB
YAML
|
on: [push, pull_request]
|
||
|
|
||
|
name: Code coverage with grcov
|
||
|
|
||
|
jobs:
|
||
|
grcov:
|
||
|
runs-on: ${{ matrix.os }}
|
||
|
strategy:
|
||
|
matrix:
|
||
|
os:
|
||
|
- ubuntu-latest
|
||
|
- macOS-latest
|
||
|
- windows-latest
|
||
|
|
||
|
steps:
|
||
|
- uses: actions/checkout@v2
|
||
|
|
||
|
- name: Install toolchain
|
||
|
uses: actions-rs/toolchain@v1
|
||
|
with:
|
||
|
toolchain: nightly
|
||
|
override: true
|
||
|
profile: minimal
|
||
|
|
||
|
- name: Execute tests
|
||
|
uses: actions-rs/cargo@v1
|
||
|
with:
|
||
|
command: test
|
||
|
args: --all
|
||
|
env:
|
||
|
CARGO_INCREMENTAL: 0
|
||
|
RUSTFLAGS: "-Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Coverflow-checks=off -Cpanic=abort -Zpanic_abort_tests"
|
||
|
|
||
|
# Note that `actions-rs/grcov` Action can install `grcov` too,
|
||
|
# but can't use faster installation methods yet.
|
||
|
# As a temporary experiment `actions-rs/install` Action plugged in here.
|
||
|
# Consider **NOT** to copy that into your workflow,
|
||
|
# but use `actions-rs/grcov` only
|
||
|
- name: Pre-installing grcov
|
||
|
uses: actions-rs/install@v0.1
|
||
|
with:
|
||
|
crate: grcov
|
||
|
use-tool-cache: true
|
||
|
|
||
|
- name: Gather coverage data
|
||
|
id: coverage
|
||
|
uses: actions-rs/grcov@v0.1
|
||
|
with:
|
||
|
coveralls-token: ${{ secrets.COVERALLS_TOKEN }}
|
||
|
|
||
|
- name: Coveralls upload
|
||
|
uses: coverallsapp/github-action@master
|
||
|
with:
|
||
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||
|
parallel: true
|
||
|
path-to-lcov: ${{ steps.coverage.outputs.report }}
|
||
|
|
||
|
grcov_finalize:
|
||
|
runs-on: ubuntu-latest
|
||
|
needs: grcov
|
||
|
steps:
|
||
|
- name: Coveralls finalization
|
||
|
uses: coverallsapp/github-action@master
|
||
|
with:
|
||
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||
|
parallel-finished: true
|