Skip to content

Commit 653b127

Browse files
authored
Update tests.yml
1 parent ab500be commit 653b127

File tree

1 file changed

+23
-3
lines changed

1 file changed

+23
-3
lines changed

.github/workflows/tests.yml

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff 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

0 commit comments

Comments
 (0)