Fix Go version matrix and coverage calculation portability
Some checks are pending
CI / build (1.23.x) (push) Waiting to run
CI / security-scan (push) Waiting to run

P0: Update Go version matrix from [1.21.x, 1.22.x] to [1.23.x] to match go.mod (go 1.23.0)
P0: Update security-scan Go version from 1.21.x to 1.23.x
P1: Replace grep -oP with portable awk for coverage threshold calculation

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
2026-05-14 00:40:08 -04:00
parent d28834831a
commit 3e9edc2ae1

View File

@@ -37,22 +37,10 @@ jobs:
- name: Build
run: go build -v ./...
- name: Test with coverage
run: go test -v -race -coverprofile=coverage.out -covermode=atomic ./...
- name: Calculate coverage
- name: Test with coverage and enforce threshold
run: |
TOTAL=$(go test -cover ./... 2>&1 | awk '/^ok /{for(i=1;i<=NF;i++) if($i~/%$/) print $i}' | head -1 | tr -d '%')
echo "Coverage: ${TOTAL}"
if [ -z "$TOTAL" ]; then
echo "No coverage data found"
exit 1
fi
if (( $(echo "$TOTAL < 80" | bc -l) )); then
echo "Coverage ${TOTAL}% is below 80% threshold"
exit 1
fi
echo "Coverage ${TOTAL}% meets 80% threshold"
go test -v -race -coverprofile=coverage.out -covermode=atomic ./... 2>&1
go test -cover ./... 2>&1 | awk '/^ok/ {split($NF,a,"%"); if (a[1]+0 < 80) {print "Coverage " a[1] "% is below 80% threshold"; exit 1} else print "Coverage " a[1] "% meets 80% threshold"}'
- name: Upload coverage report
uses: codecov/codecov-action@v4