Unnamed repository; edit this file 'description' to name the repository.
-rw-r--r--.codecov.yml10
-rw-r--r--.github/workflows/coverage.yaml44
2 files changed, 54 insertions, 0 deletions
diff --git a/.codecov.yml b/.codecov.yml
new file mode 100644
index 0000000000..68eacb7d08
--- /dev/null
+++ b/.codecov.yml
@@ -0,0 +1,10 @@
+coverage:
+ range: 40...60
+ status:
+ patch: off
+ project:
+ default:
+ informational: true
+
+# Don't leave comments on PRs
+comment: false
diff --git a/.github/workflows/coverage.yaml b/.github/workflows/coverage.yaml
new file mode 100644
index 0000000000..bd4edba747
--- /dev/null
+++ b/.github/workflows/coverage.yaml
@@ -0,0 +1,44 @@
+name: Coverage
+
+on: [pull_request, push]
+
+env:
+ CARGO_INCREMENTAL: 0
+ CARGO_NET_RETRY: 10
+ CI: 1
+ RUST_BACKTRACE: short
+ RUSTUP_MAX_RETRIES: 10
+
+jobs:
+ coverage:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Install Rust toolchain
+ run: |
+ rustup update --no-self-update nightly
+ rustup default nightly
+ rustup component add --toolchain nightly rust-src rustc-dev rustfmt
+ # We also install a nightly rustfmt, because we use `--file-lines` in
+ # a test.
+ rustup toolchain install nightly --profile minimal --component rustfmt
+
+ rustup toolchain install nightly --component llvm-tools-preview
+
+ - name: Install cargo-llvm-cov
+ uses: taiki-e/install-action@cargo-llvm-cov
+
+ - name: Install nextest
+ uses: taiki-e/install-action@nextest
+
+ - name: Generate code coverage
+ run: cargo llvm-cov --workspace --lcov --output-path lcov.info
+
+ - name: Upload coverage to Codecov
+ uses: codecov/codecov-action@v5
+ with:
+ files: lcov.info
+ fail_ci_if_error: false
+ token: ${{ secrets.CODECOV_TOKEN }}
+ verbose: true