From b51165d8e85a5a49da10e41f1faf614f1d862c9a Mon Sep 17 00:00:00 2001 From: Stefan Ellmauthaler <71695780+ellmau@users.noreply.github.com> Date: Thu, 16 Dec 2021 16:05:28 +0100 Subject: [PATCH] Create grcov.yml --- .github/workflows/grcov.yml | 65 +++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 .github/workflows/grcov.yml diff --git a/.github/workflows/grcov.yml b/.github/workflows/grcov.yml new file mode 100644 index 0000000..f30c337 --- /dev/null +++ b/.github/workflows/grcov.yml @@ -0,0 +1,65 @@ +on: + # Trigger the workflow on push or pull request, + # but only for the main branch + push: + branches: + - main + +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: 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