Skip to content

Commit

Permalink
Add tarpaulin based code coverage job
Browse files Browse the repository at this point in the history
This is a port from previous version of CI and uses the same command as
previously.

There might seem to be multiple other and better ways to do it but they
are all broken in some ways.

We could use the action https://github.com/actions-rs/tarpaulin but
that one is no longer maintained. The last version of tarpaulin it works
with is 0.22 from October 2022 and the fix is still not merged in after
multiple months: actions-rs/tarpaulin#23 .
Additionally there are discussions to deprecate this action:
actions-rs/tarpaulin#6

Alternatively we could have used the 'official' docker image of
tarpaulin: https://hub.docker.com/r/xd009642/tarpaulin . This will not
work since when github action runs in a docker, the container is not
started with enough privileges which causes tarpaulin to crash, see as
an example of this here:
xd009642/tarpaulin#146
  • Loading branch information
tomaszklak committed Oct 4, 2023
1 parent 6cb73c1 commit 11f0fec
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@ jobs:
benchmarks:
needs: trigger
uses: ./.github/workflows/benchmarks.yml
coverage:
needs: trigger
uses: ./.github/workflows/coverage.yml

check-all-green:
needs:
Expand Down
17 changes: 17 additions & 0 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: Tests
on: [workflow_call]
permissions: {}

jobs:
coverage-linux:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
- name: Install stable toolchain
uses: actions-rs/toolchain@b2417cde72dcf67f306c0ae8e0828a81bf0b189f # v1.0.6
- name: Download tarpaulin
run: curl -L 'https://github.com/xd009642/tarpaulin/releases/download/0.27.1/cargo-tarpaulin-x86_64-unknown-linux-musl.tar.gz' | tar xvz
- name: Verify download
run: echo '564ea439a14eced45cdb3e50b55a463502d9fbfb7722535c5d0390b6577ce343 cargo-tarpaulin' | sha256sum --check --status
- name: Run cargo-tarpaulin
run: ./cargo-tarpaulin -v --all --out Xml --offline --exclude-files '../3rd-party/*,clis/*'
1 change: 1 addition & 0 deletions crates/telio-sockets/src/protector/linux.rs
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ mod tests {

use super::*;

#[cfg(not(tarpaulin))]
#[rstest]
#[case(IpAddr::V4(Ipv4Addr::LOCALHOST))]
#[case(IpAddr::V4(Ipv4Addr::UNSPECIFIED))]
Expand Down

0 comments on commit 11f0fec

Please sign in to comment.