Skip to content

Commit 9f42ab7

Browse files
author
Gonzalo Diaz
committed
[Github Actions] new test for HTML coverage report generation
1 parent c076454 commit 9f42ab7

2 files changed

Lines changed: 70 additions & 1 deletion

File tree

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
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+
env:
9+
REPORT_DIR: "./coverage/"
10+
REPORT_FILE: "coverage.html"
11+
12+
on: # yamllint disable-line rule:truthy
13+
push:
14+
branches: ["main"]
15+
pull_request:
16+
branches: ["main"]
17+
workflow_dispatch:
18+
19+
jobs:
20+
make-coverage-html:
21+
name: "Run make coverage/html and verify coverage HTML"
22+
runs-on: ubuntu-24.04
23+
24+
steps:
25+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
26+
with:
27+
fetch-depth: 0
28+
29+
- name: Set up Go
30+
uses: actions/setup-go@v6
31+
with:
32+
go-version: "1.26.x"
33+
34+
- name: Build
35+
run: go build -v ./...
36+
37+
- name: Tool test
38+
run: |
39+
go version
40+
make --version
41+
42+
- name: Run coverage HTML target
43+
run: make coverage/html
44+
45+
- name: Verify coverage HTML artifact
46+
shell: bash
47+
run: |
48+
if [ ! -f $REPORT_DIR/$REPORT_FILE ]; then
49+
echo "Coverage HTML file not found: $REPORT_DIR/$REPORT_FILE"
50+
exit 1
51+
fi
52+
if [ ! -s $REPORT_DIR/$REPORT_FILE ]; then
53+
echo "Coverage HTML file is empty: $REPORT_DIR/$REPORT_FILE"
54+
exit 1
55+
fi
56+
57+
- name: Upload coverage HTML artifact
58+
uses: actions/upload-artifact@v7
59+
with:
60+
name: coverage-report-html
61+
path: ${{ env.REPORT_DIR }}

Makefile

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,15 @@ coverage: test
114114

115115
coverage/html: coverage.out
116116
$(GOCOVER) -html=coverage.out -o ./coverage/coverage.html
117-
open ./coverage/coverage.html
117+
118+
119+
@if [ "$$(uname)" = "Darwin" ]; then \
120+
open ./coverage/coverage.html; \
121+
elif [ "$$(uname | tr '[:upper:]' '[:lower:]')" = "mingw32" ] || [ "$$(uname | tr '[:upper:]' '[:lower:]')" = "mingw64" ] || [ "$$(uname | tr '[:upper:]' '[:lower:]')" = "cygwin" ]; then \
122+
cmd /c start ./coverage/coverage.html; \
123+
else \
124+
echo "Coverage HTML generated: ./coverage/coverage.html"; \
125+
fi
118126

119127
outdated:
120128
$(GO) list -m -u all

0 commit comments

Comments
 (0)