Skip to content

Commit 52fcdf5

Browse files
committed
[ci] Annotate coverage jobs
1 parent ac2c270 commit 52fcdf5

1 file changed

Lines changed: 25 additions & 7 deletions

File tree

.github/workflows/coverage.yml

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@ jobs:
5959
- name: Configure (coverage)
6060
run: |
6161
cmake --preset dev-clang -B build/coverage \
62-
-DCMAKE_CXX_FLAGS="--gcc-install-dir=/usr/lib/gcc/x86_64-linux-gnu/16 -fprofile-instr-generate -fcoverage-mapping" \
63-
-DCMAKE_EXE_LINKER_FLAGS="-fprofile-instr-generate"
62+
-DCMAKE_CXX_FLAGS_INIT="--gcc-install-dir=/usr/lib/gcc/x86_64-linux-gnu/16 -fprofile-instr-generate -fcoverage-mapping" \
63+
-DCMAKE_EXE_LINKER_FLAGS_INIT="-fprofile-instr-generate"
6464
6565
- name: Build
6666
run: cmake --build build/coverage --config Debug
@@ -82,9 +82,16 @@ jobs:
8282
first="${objects[0]}"
8383
obj_args=()
8484
for o in "${objects[@]:1}"; do obj_args+=("-object=$o"); done
85-
llvm-cov-22 report "$first" "${obj_args[@]}" \
85+
report=$(llvm-cov-22 report "$first" "${obj_args[@]}" \
8686
-instr-profile=build/coverage/coverage.profdata \
87-
-use-color=false src include/eggs 2>/dev/null
87+
-path-equivalence=".,${GITHUB_WORKSPACE}" \
88+
-use-color=false src include/eggs 2>/dev/null)
89+
echo "$report"
90+
if [ "$GITHUB_ACTIONS" = "true" ]; then
91+
escaped="${report//'%'/'%25'}"
92+
escaped="${escaped//$'\n'/'%0A'}"
93+
echo "::notice title=Coverage report (llvm-cov)::$escaped"
94+
fi
8895
8996
- name: Generate HTML report
9097
run: |
@@ -94,6 +101,7 @@ jobs:
94101
for o in "${objects[@]:1}"; do obj_args+=("-object=$o"); done
95102
llvm-cov-22 show "$first" "${obj_args[@]}" \
96103
-instr-profile=build/coverage/coverage.profdata \
104+
-path-equivalence=".,${GITHUB_WORKSPACE}" \
97105
-format=html \
98106
-output-dir=build/coverage/html \
99107
-show-line-counts-or-regions \
@@ -154,8 +162,8 @@ jobs:
154162
- name: Configure (coverage)
155163
run: |
156164
cmake --preset dev-gcc -B build/coverage-gcc \
157-
-DCMAKE_CXX_FLAGS="--coverage" \
158-
-DCMAKE_EXE_LINKER_FLAGS="--coverage"
165+
-DCMAKE_CXX_FLAGS_INIT="--coverage" \
166+
-DCMAKE_EXE_LINKER_FLAGS_INIT="--coverage"
159167
160168
- name: Build
161169
run: cmake --build build/coverage-gcc --config Debug
@@ -170,22 +178,32 @@ jobs:
170178
run: |
171179
lcov --capture \
172180
--gcov-tool gcov-16 \
181+
--rc branch_coverage=1 \
173182
--ignore-errors mismatch,inconsistent \
183+
--base-directory . \
174184
--directory build/coverage-gcc \
175185
--output-file build/coverage-gcc/coverage.info
176186
lcov --extract build/coverage-gcc/coverage.info \
177187
'*/src/*' '*/include/eggs/*' \
188+
--rc branch_coverage=1 \
178189
--ignore-errors unused \
179190
--output-file build/coverage-gcc/coverage.info
180191
181192
- name: Coverage report
182193
run: |
183-
lcov --list build/coverage-gcc/coverage.info
194+
report=$(lcov --list build/coverage-gcc/coverage.info --rc branch_coverage=1)
195+
echo "$report"
196+
if [ "$GITHUB_ACTIONS" = "true" ]; then
197+
escaped="${report//'%'/'%25'}"
198+
escaped="${escaped//$'\n'/'%0A'}"
199+
echo "::notice title=Coverage report (gcov)::$escaped"
200+
fi
184201
185202
- name: Generate HTML report
186203
run: |
187204
genhtml build/coverage-gcc/coverage.info \
188205
--output-directory build/coverage-gcc/html \
206+
--rc branch_coverage=1 \
189207
--quiet
190208
191209
- name: Upload coverage report

0 commit comments

Comments
 (0)