浏览代码

Add code coverage using llvm-cov and codecov.io

Signed-off-by: Thibaut Vandervelden <[email protected]>
Thibaut Vandervelden 1 年之前
父节点
当前提交
42dd475d30
共有 2 个文件被更改,包括 33 次插入0 次删除
  1. 22 0
      .github/workflows/coverage.yml
  2. 11 0
      ci.sh

+ 22 - 0
.github/workflows/coverage.yml

@@ -0,0 +1,22 @@
+on:
+  push:
+    branches: [staging, trying]
+  pull_request:
+
+name: Coverage
+
+jobs:
+  coverage:
+    runs-on: ubuntu-22.04
+    steps:
+      - uses: actions/checkout@v2
+      - name: Install `cargo llvm-cov`
+        uses: taiki-e/install-action@cargo-llvm-cov
+      - name: Run Coverage
+        run: ./ci.sh coverage
+      - name: Upload coverage to Codecov
+        uses: codecov/codecov-action@v3
+        with:
+          #token: ${{ secrets.CODECOV_TOKEN }} # not required for public repos
+          files: lcov.info
+          fail_ci_if_error: false

+ 11 - 0
ci.sh

@@ -73,6 +73,13 @@ clippy() {
     cargo +$MSRV clippy --tests --examples -- -D warnings
 }
 
+coverage() {
+    for features in ${FEATURES_TEST[@]}; do
+        cargo llvm-cov --no-report --no-default-features --features "$features"
+    done
+    cargo llvm-cov report --lcov --output-path lcov.info
+}
+
 if [[ $1 == "test" || $1 == "all" ]]; then
     if [[ -n $2 ]]; then
         if [[ $2 == "msrv" ]]; then
@@ -104,3 +111,7 @@ fi
 if [[ $1 == "clippy" || $1 == "all" ]]; then
     clippy
 fi
+
+if [[ $1 == "coverage" || $1 == "all" ]]; then
+    coverage
+fi