File tree Expand file tree Collapse file tree 1 file changed +23
-3
lines changed Expand file tree Collapse file tree 1 file changed +23
-3
lines changed Original file line number Diff line number Diff line change @@ -71,13 +71,33 @@ jobs:
7171 fail_ci_if_error : false
7272 token : ${{ secrets.CODECOV_TOKEN }}
7373
74+ - name : Check clover.xml format
75+ run : |
76+ echo "First 20 lines of clover.xml:"
77+ head -n 20 build/logs/clover.xml
78+
7479 - name : Extract coverage percentage
7580 id : extract_coverage
7681 run : |
77- COVERAGE=$(grep -Po '<coverage[^>]*line-rate="([^"]+)"' build/logs/clover.xml | grep -Po 'line-rate="([^"]+)"' | grep -Po '[0-9\.]+')
78- PERCENTAGE=$(echo "$COVERAGE * 100" | bc -l | xargs printf "%.2f")
82+ # Install xml parsing tool
83+ sudo apt-get install -y xmlstarlet
84+
85+ # Extract coverage using xmlstarlet
86+ COVERAGE=$(xmlstarlet sel -t -v "sum(//file/metrics/@statements)" -o "/" -v "sum(//file/metrics/@coveredstatements)" build/logs/clover.xml)
87+
88+ # Calculate percentage
89+ TOTAL=$(echo $COVERAGE | cut -d'/' -f1)
90+ COVERED=$(echo $COVERAGE | cut -d'/' -f2)
91+
92+ # Check for division by zero
93+ if [ "$TOTAL" -eq "0" ]; then
94+ PERCENTAGE="0.00"
95+ else
96+ PERCENTAGE=$(echo "scale=2; 100 * $COVERED / $TOTAL" | bc)
97+ fi
98+
7999 echo "percentage=$PERCENTAGE" >> $GITHUB_OUTPUT
80- echo "Coverage percentage: $PERCENTAGE%"
100+ echo "Coverage percentage: $PERCENTAGE% ($COVERED/$TOTAL statements covered) "
81101
82102 - name : Determine badge color
83103 id : badge_color
You can’t perform that action at this time.
0 commit comments