Skip to content
This repository was archived by the owner on Dec 17, 2025. It is now read-only.

Commit 8fb4842

Browse files
author
Oliver Wieland (HC/XAG1)
committed
chore: Show coverage badge
1 parent 44480ef commit 8fb4842

1 file changed

Lines changed: 31 additions & 3 deletions

File tree

.github/workflows/badge.yml

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,22 +21,50 @@ jobs:
2121
- name: Setup dependencies
2222
run: |
2323
sudo apt-get update
24-
sudo apt-get install -y ninja-build libspdlog-dev gcc-11 g++-11
24+
sudo apt-get install -y ninja-build libspdlog-dev gcc-11 g++-11 lcov python3-pip
25+
python3 -m pip install --user anybadge
2526
2627
- name: Set up CMake
2728
uses: jwlawson/actions-setup-cmake@v1.14
2829
with:
2930
cmake-version: 3.20.0
3031

31-
- name: Quick build test
32+
- name: Quick build test (with coverage)
3233
run: |
33-
cmake -B build -G Ninja -DCMAKE_C_COMPILER=gcc-11 -DCMAKE_CXX_COMPILER=g++-11 -DCMAKE_BUILD_TYPE=Release -DWITH_UNIT_TEST=ON
34+
cmake -B build -G Ninja \
35+
-DCMAKE_C_COMPILER=gcc-11 \
36+
-DCMAKE_CXX_COMPILER=g++-11 \
37+
-DCMAKE_BUILD_TYPE=Debug \
38+
-DWITH_UNIT_TEST=ON \
39+
-DCMAKE_CXX_FLAGS="--coverage" \
40+
-DCMAKE_C_FLAGS="--coverage"
3441
cmake --build build --parallel 4
3542
3643
- name: Quick test run
3744
working-directory: build
3845
run: ctest --output-on-failure
3946

47+
- name: Generate coverage report
48+
run: |
49+
lcov --capture --directory build --output-file coverage.badge.info
50+
lcov --remove coverage.badge.info '/usr/*' '*/test/*' '*/build/*' --output-file coverage.badge.info
51+
echo "Coverage summary:" && lcov --summary coverage.badge.info
52+
PCT=$(lcov --summary coverage.badge.info | awk '/lines/ {gsub("%","", $2); print $2}')
53+
echo "CODE_COVERAGE=$PCT" >> $GITHUB_ENV
54+
55+
- name: Generate coverage badge
56+
env:
57+
PATH: ${{ env.HOME }}/.local/bin:${{ env.PATH }}
58+
run: |
59+
anybadge --value=${CODE_COVERAGE} --file=coverage.svg --label="coverage" --suffix="%" \
60+
0=red 50=orange 70=yellow 80=yellowgreen 90=green
61+
62+
- name: Upload coverage badge artifact
63+
uses: actions/upload-artifact@v4
64+
with:
65+
name: coverage-badge
66+
path: coverage.svg
67+
4068
- name: Generate badge data
4169
run: |
4270
echo "BUILD_STATUS=passing" >> $GITHUB_ENV

0 commit comments

Comments
 (0)