Skip to content

Commit be977d2

Browse files
author
Gonzalo Diaz
committed
[Github Actions] new test for HTML coverage report generation
1 parent 8e8b258 commit be977d2

2 files changed

Lines changed: 64 additions & 2 deletions

File tree

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# yamllint disable rule:line-length
2+
# This workflow runs make coverage/html and verifies that the coverage HTML report is generated.
3+
# yamllint enable rule:line-length
4+
5+
---
6+
name: Make Coverage HTML
7+
8+
on: # yamllint disable-line rule:truthy
9+
push:
10+
branches: ["main"]
11+
pull_request:
12+
branches: ["main"]
13+
workflow_dispatch:
14+
15+
jobs:
16+
make-coverage-html:
17+
name: "Run make coverage/html and verify coverage HTML"
18+
runs-on: ubuntu-24.04
19+
steps:
20+
- name: Checkout repository
21+
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
22+
23+
- name: Install
24+
shell: bash
25+
run: |
26+
echo "VCPKG_ROOT=/usr/local/share/vcpkg" >> $GITHUB_ENV
27+
28+
- name: Check Tools
29+
run: |
30+
echo "-----------"
31+
make --version
32+
echo "-----------"
33+
cmake --version
34+
echo "-----------"
35+
vcpkg --version
36+
echo "-----------"
37+
38+
- name: Run coverage HTML target
39+
run: make coverage/html
40+
41+
- name: Verify coverage HTML artifact
42+
shell: bash
43+
run: |
44+
if [ ! -f coverage/index.html ]; then
45+
echo "Coverage HTML file not found: coverage-report/index.html"
46+
exit 1
47+
fi
48+
if [ ! -s coverage/index.html ]; then
49+
echo "Coverage HTML file is empty: coverage-report/index.html"
50+
exit 1
51+
fi
52+
53+
- name: Upload coverage HTML artifact
54+
uses: actions/upload-artifact@v7
55+
with:
56+
name: coverage-report
57+
path: coverage

Makefile

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,13 @@ coverage: test
110110

111111
coverage/html: coverage
112112
genhtml ${COVERAGE_TOOL_OPTS} -o coverage/ --show-details --legend coverage/lcov.info
113-
open coverage/index.html
114-
113+
@if [ "$$(uname)" = "Darwin" ]; then \
114+
open coverage/index.html; \
115+
elif [ "$$(uname | tr '[:upper:]' '[:lower:]')" = "mingw32" ] || [ "$$(uname | tr '[:upper:]' '[:lower:]')" = "mingw64" ] || [ "$$(uname | tr '[:upper:]' '[:lower:]')" = "cygwin" ]; then \
116+
cmd /c start coverage/index.html; \
117+
else \
118+
echo "Coverage HTML generated: coverage/index.html"; \
119+
fi
115120
outdated:
116121

117122
update: dependencies outdated

0 commit comments

Comments
 (0)