ci: move coverage validation to separate script for better readability
continuous-integration/drone/push Build is passing
continuous-integration/drone/push Build is passing
This commit is contained in:
Executable
+28
@@ -0,0 +1,28 @@
|
||||
#!/bin/bash
|
||||
# Check test coverage against minimum threshold
|
||||
|
||||
set -e
|
||||
|
||||
COVERAGE_FILE="${1:-.build/coverage.out}"
|
||||
MIN_COVERAGE="${2:-80}"
|
||||
|
||||
if [ ! -f "$COVERAGE_FILE" ]; then
|
||||
echo "Error: Coverage file not found: $COVERAGE_FILE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Extract coverage percentage using awk
|
||||
COVERAGE=$(go tool cover -func "$COVERAGE_FILE" | awk '/^total:/ { match($0, /[0-9.]+%/); print substr($0, RSTART, RLENGTH-1) }')
|
||||
|
||||
echo "Total coverage: ${COVERAGE}%"
|
||||
|
||||
# Compare as integers (remove decimals for simpler comparison)
|
||||
COVERAGE_INT=${COVERAGE%.*}
|
||||
|
||||
if [ "$COVERAGE_INT" -lt "$MIN_COVERAGE" ]; then
|
||||
echo "Coverage ${COVERAGE}% is below minimum ${MIN_COVERAGE}%"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Coverage check passed"
|
||||
exit 0
|
||||
Reference in New Issue
Block a user