-
Notifications
You must be signed in to change notification settings - Fork 0
36 lines (28 loc) · 941 Bytes
/
coverage.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
name: Code Coverage
on: [push, pull_request]
permissions:
contents: read
pull-requests: read
jobs:
coverage:
name: Check Code Coverage
runs-on: ubuntu-latest
steps:
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: '1.22'
- name: Checkout Code
uses: actions/checkout@v4
- name: Get Coverage
run: GOEXPERIMENT=nocoverageredesign go test -coverprofile coverage.out -covermode count ./...
- name: Check Coverage
env:
THRESHOLD: 95
run: |
coverage="$(go tool cover -func coverage.out |sed -r -e '/^total:/! d' -e 's|^.*\s([0-9.]+)%.*$|\1|')"
ok="$(echo "${coverage}" "${THRESHOLD}" |awk '{print $1 >= $2}')"
if [ "${ok}" -ne 1 ] ; then
echo 1>&2 "Code coverage does not meet threshold: ${coverage}% < ${THRESHOLD}%"
exit 1
fi