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