on: pull_request: types: [opened, synchronize, reopened, ready_for_review] push: branches: - "main" - "develop" name: Code coverage env: RUST_TOOLCHAIN: nightly-2022-07-14 jobs: grcov: if: github.event.pull_request.draft == false runs-on: ubuntu-latest timeout-minutes: 60 steps: - uses: actions/checkout@v2 - name: Cache LLVM and Clang id: cache-llvm uses: actions/cache@v3 with: path: ./llvm key: llvm - uses: arduino/setup-protoc@v1 - uses: KyleMayes/install-llvm-action@v1 with: version: "14.0" cached: ${{ steps.cache-llvm.outputs.cache-hit }} - name: Install toolchain uses: actions-rs/toolchain@v1 with: toolchain: ${{ env.RUST_TOOLCHAIN }} override: true profile: minimal - name: Rust Cache uses: Swatinem/rust-cache@v2.0.0 - name: Cleanup disk uses: curoky/cleanup-disk-action@v2.0 with: retain: 'rust,llvm' - name: Execute tests uses: actions-rs/cargo@v1 with: command: test args: --workspace env: RUST_BACKTRACE: 1 CARGO_INCREMENTAL: 0 RUSTFLAGS: "-Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Coverflow-checks=off -Cpanic=unwind -Zpanic_abort_tests -Clink-arg=-fuse-ld=lld" GT_S3_BUCKET: ${{ secrets.S3_BUCKET }} GT_S3_ACCESS_KEY_ID: ${{ secrets.S3_ACCESS_KEY_ID }} GT_S3_ACCESS_KEY: ${{ secrets.S3_ACCESS_KEY }} UNITTEST_LOG_DIR: "__unittest_logs" - name: Gather coverage data id: coverage uses: actions-rs/grcov@v0.1 - name: Codecov upload uses: codecov/codecov-action@v2 with: token: ${{ secrets.CODECOV_TOKEN }} files: ./lcov.info flags: rust fail_ci_if_error: true verbose: true