diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index efeb61f..0cb999b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -56,54 +56,18 @@ jobs: args: --all-features --all-targets -- -D warnings coverage: - name: Coverage (+nightly) - # The large timeout is to accommodate nightly builds - timeout-minutes: 45 + name: Code Coverage runs-on: ubuntu-latest steps: - uses: actions/checkout@v2.3.4 + - uses: actions-rs/toolchain@v1.0.7 with: - persist-credentials: false - - - uses: actions-rs/toolchain@v1 - with: - toolchain: nightly + toolchain: stable override: true - profile: minimal - components: llvm-tools-preview - - - name: Install rustfilt symbol demangler - run: | - cargo install rustfilt - - - name: Rerun tests for coverage - env: - RUSTFLAGS: -Zinstrument-coverage -C link-dead-code -C debuginfo=2 - LLVM_PROFILE_FILE: "${{ github.workspace }}/test.%p.profraw" - ZEBRA_SKIP_NETWORK_TESTS: 1 - CARGO_INCREMENTAL: 0 - run: | - cargo test --all-features - cargo test --all-features --no-run --message-format=json | jq -r "select(.profile.test == true) | .filenames[]" | grep -v dSYM - > filenames.txt - - - name: Merge coverage data - run: | - $(rustc --print target-libdir)/../bin/llvm-profdata merge test.*.profraw -o test.profdata - - - name: Generate detailed html coverage report for github artifact - run: | - $(rustc --print target-libdir)/../bin/llvm-cov show -format=html -ignore-filename-regex=".*/.cargo/registry/.*" -ignore-filename-regex=".*/.cargo/git/.*" -ignore-filename-regex=".*/.rustup/.*" -Xdemangler=rustfilt -show-instantiations -output-dir=./coverage -instr-profile=./test.profdata $(printf -- "-object %s " $(cat filenames.txt)) - - - name: Generate json coverage report for codecov - run: | - $(rustc --print target-libdir)/../bin/llvm-cov export -format=text -instr-profile=test.profdata $(printf -- "-object %s " $(cat filenames.txt)) > "lcov.info" - - - uses: actions/upload-artifact@v2 + - name: Run cargo-tarpaulin + uses: actions-rs/tarpaulin@v0.1.3 with: - name: coverage - path: | - ./coverage - ./lcov.info - + version: '0.18.0-alpha3' + timeout: 300 - name: Upload coverage report to Codecov uses: codecov/codecov-action@v1.5.2