Changed coverage tools to better represent coverage Signed-off-by: constantoine <cleo.rebert-ext@treezor.com>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml
index a99dc3f..1b487d3 100644
--- a/.github/workflows/rust.yml
+++ b/.github/workflows/rust.yml
@@ -21,27 +21,28 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
+ - name: Install lcov_cobertura
+ run: curl -O https://raw.githubusercontent.com/eriwen/lcov-to-cobertura-xml/master/lcov_cobertura/lcov_cobertura.py && chmod +x lcov_cobertura.py
+ - name: Install llvm-tools-preview
+ run: rustup component add llvm-tools-preview
+ - name: Install grcov
+ run: cargo install grcov
+ - name: Create coverage output dir
+ run: mkdir -p target/coverage
- name: All features
- run: cargo test --all-features
+ run: CARGO_INCREMENTAL=0 RUSTFLAGS='-Cinstrument-coverage' LLVM_PROFILE_FILE='cargo-test-%p-%m.profraw' cargo test --all-features
- name: No feature
- run: cargo test
+ run: CARGO_INCREMENTAL=0 RUSTFLAGS='-Cinstrument-coverage' LLVM_PROFILE_FILE='cargo-test-%p-%m.profraw' cargo test
- name: otpauth feature
- run: cargo test --features=otpauth
+ run: CARGO_INCREMENTAL=0 RUSTFLAGS='-Cinstrument-coverage' LLVM_PROFILE_FILE='cargo-test-%p-%m.profraw' cargo test --features=otpauth
- name: gen_secret feature
- run: cargo test --features=gen_secret
+ run: CARGO_INCREMENTAL=0 RUSTFLAGS='-Cinstrument-coverage' LLVM_PROFILE_FILE='cargo-test-%p-%m.profraw' cargo test --features=gen_secret
- name: otpauth+gensecret feature
- run: cargo test --features=gen_secret,otpauth
-
- coverage:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - name: Run cargo-tarpaulin
- uses: actions-rs/tarpaulin@v0.1
- with:
- version: '0.20.1'
- args: --all-features --out=Xml
-
+ run: CARGO_INCREMENTAL=0 RUSTFLAGS='-Cinstrument-coverage' LLVM_PROFILE_FILE='cargo-test-%p-%m.profraw' cargo test --features=gen_secret,otpauth
+ - name: Create coverage file
+ run: grcov . --binary-path ./target/debug/deps/ -s . -t lcov --branch --ignore-not-existing --ignore '../*' --ignore "/*" -o target/coverage/tests.lcov
+ - name: Convert coverage file to cobertura
+ run: python3 lcov_cobertura.py target/coverage/tests.lcov -o cobertura.xml
- name: Upload to codecov.io
uses: codecov/codecov-action@v2
with: