1+ function bar (cov ) {
2+ if (cov >= 95 ) {
3+ return " :green_square::green_square::green_square::green_square:"
4+ } else if (cov >= 75 ) {
5+ return " :green_square::green_square::green_square::red_square:"
6+ } else if (cov >= 50 ) {
7+ return " :green_square::green_square::red_square::red_square:"
8+ } else if (cov >= 25 ) {
9+ return " :green_square::red_square::red_square::red_square:"
10+ } else {
11+ return " :red_square::red_square::red_square::red_square:"
12+ }
13+ }
14+
15+ BEGIN {
16+ printf (" ## Coverage\n\n " )
17+ details = " <details>\n <summary>Coverage Details</summary>\n\n "
18+ details = details" |Coverage|File|Uncovered Lines|\n "
19+ details = details" |-|-|-|\n "
20+ file = " "
21+ }
22+ $1 !~ /mode: / {
23+ if (match ($1 ," ^" package" ([^:]+):([0-9]+).[0-9]+,([0-9]+).[0-9]+" ,f)) {
24+ if (file != " " && file != f[ 1 ] ) {
25+ fileCoverage = fileCovered/ fileStatements* 100
26+ if (lineStart != " " && lineEnd != " " ) {
27+ uncoveredLines = sprintf (" %s[%s-%s](%s%s#L%s-L%s)" , uncoveredLines, lineStart, lineEnd, baseUrl, file, lineStart, lineEnd)
28+ }
29+ details = sprintf (" %s|%s %.1f%|%s|%s|\n " , details, bar(fileCoverage), fileCoverage, file, uncoveredLines)
30+ fileCovered = 0
31+ fileStatements = 0
32+ uncoveredLines = " "
33+ lineStart = " "
34+ lineEnd = " "
35+ }
36+ file = f[ 1 ]
37+ statements += $2
38+ fileStatements += $2
39+ if ($3 != " 0" ) {
40+ covered += $2
41+ fileCovered += $2
42+ next
43+ }
44+ if (lineStart == " " && lineEnd == " " ) {
45+ lineStart = f[ 2 ]
46+ lineEnd = f[ 3 ]
47+ next
48+ }
49+ if (lineEnd+ 0 == f[ 2 ] + 0 || lineEnd+ 1 == f[ 2 ] + 0 ) {
50+ lineEnd = f[ 3 ]
51+ next
52+ }
53+ uncoveredLines = sprintf (" %s[%s-%s](%s%s#L%s-L%s), " , uncoveredLines, lineStart, lineEnd, baseUrl, file, lineStart, lineEnd)
54+ lineStart = f[ 2 ]
55+ lineEnd = f[ 3 ]
56+ }
57+ }
58+ END {
59+ if (statements > 0 ) {
60+ total = covered/ statements* 100
61+ printf (" Total coverage: %s %.1f%\n " , bar(total), total)
62+ details = details" \n </details>\n\n "
63+ print (details)
64+ }
65+ }
0 commit comments