From fe84bfb68ce643e330d78ea21964ea87267c6e18 Mon Sep 17 00:00:00 2001 From: Bjerg Date: Wed, 19 Oct 2022 23:46:47 +0200 Subject: [PATCH] ci: coverage (#106) * ci: update action versions * ci: add coverage job * ci: require `CODECOV_TOKEN` secret * ci: collect coverage for entire workspace * ci: typo * ci: dedup * ci: add concurrency control --- .github/workflows/ci.yml | 55 ++++++++++++++++++++++++++++------------ 1 file changed, 39 insertions(+), 16 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 56740dd33..37da445fb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,27 +5,30 @@ on: pull_request: env: + RUSTFLAGS: -D warnings NEXTEST_EXPERIMENTAL_FILTER_EXPR: 1 CARGO_TERM_COLOR: always +concurrency: + group: ${{ github.head_ref || github.run_id }} + cancel-in-progress: true + name: ci jobs: test: runs-on: ubuntu-latest steps: - name: Checkout sources - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Install toolchain - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - profile: minimal - override: true - - uses: Swatinem/rust-cache@v1 + uses: dtolnay/rust-toolchain@stable + - uses: Swatinem/rust-cache@v2 with: cache-on-failure: true + - name: Install latest nextest release uses: taiki-e/install-action@nextest + - name: Test with latest nextest release uses: actions-rs/cargo@v1 with: @@ -36,17 +39,12 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout sources - uses: actions/checkout@v2 - + uses: actions/checkout@v3 - name: Install toolchain - uses: actions-rs/toolchain@v1 + uses: dtolnay/rust-toolchain@nightly with: - toolchain: nightly - profile: minimal components: rustfmt, clippy - override: true - - - uses: Swatinem/rust-cache@v1 + - uses: Swatinem/rust-cache@v2 with: cache-on-failure: true @@ -59,5 +57,30 @@ jobs: - name: cargo clippy uses: actions-rs/clippy-check@v1 with: - args: --all --all-features -- -D warnings + args: --all --all-features token: ${{ secrets.GITHUB_TOKEN }} + + coverage: + runs-on: ubuntu-latest + # nightly rust might break from time to time + continue-on-error: true + needs: [test] + steps: + - uses: actions/checkout@v3 + - uses: dtolnay/rust-toolchain@stable + with: + components: llvm-tools-preview + - uses: Swatinem/rust-cache@v2 + + - name: Install latest nextest release + uses: taiki-e/install-action@nextest + - name: Install cargo-llvm-cov + uses: taiki-e/install-action@cargo-llvm-cov + + - name: Collect coverage data + run: cargo llvm-cov nextest --lcov --output-path lcov.info --locked --workspace --all-features + - name: Upload coverage data to codecov + uses: codecov/codecov-action@v3 + with: + token: ${{ secrets.CODECOV_TOKEN }} + files: lcov.info \ No newline at end of file