diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 21aed2f0..44be5c74 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -93,6 +93,10 @@ jobs: run: rustup toolchain install --profile minimal nightly - name: Run tests (with coverage) + # Tarpaulin is very flaky, and coverage is just 'nice to have', so do not fail + # entire pipeline because of it. + continue-on-error: true + id: tarpaulin # Will read from `tarpaulin.toml`. Extra flags given here complement the config. run: > cargo tarpaulin @@ -101,6 +105,10 @@ jobs: - name: Upload coverage reports to Codecov uses: codecov/codecov-action@v4 + # `steps.$STEP.conclusion` is "after" `continue-on-error` was applied, + # `steps.$STEP.outcome` is "before". + # That's why the `success()` expression doesn't work here. + if: ${{ steps.tarpaulin.outcome == 'success' }} with: fail_ci_if_error: true verbose: true