40
40
- run : gzip envtest.coverage
41
41
- uses : actions/upload-artifact@v3
42
42
with :
43
- name : " kubernetes-api=${{ matrix.kubernetes }}"
43
+ name : " ~coverage~ kubernetes-api=${{ matrix.kubernetes }}"
44
44
path : envtest.coverage.gz
45
45
retention-days : 1
46
46
74
74
- run : gzip envtest-existing.coverage
75
75
- uses : actions/upload-artifact@v3
76
76
with :
77
- name : " kubernetes-k3d=${{ matrix.kubernetes }}"
77
+ name : " ~coverage~ kubernetes-k3d=${{ matrix.kubernetes }}"
78
78
path : envtest-existing.coverage.gz
79
79
retention-days : 1
80
80
@@ -102,9 +102,11 @@ jobs:
102
102
registry.developers.crunchydata.com/crunchydata/crunchy-postgres-gis:ubi8-14.4-3.1-0
103
103
104
104
- run : go mod download
105
- - name : Build PGO
105
+ - name : Build coverage executable
106
106
run : |
107
- make build-postgres-operator PGO_VERSION=${{ github.sha }}
107
+ make build-postgres-operator \
108
+ GO_BUILD='go test -c --tags main_with_coverage --trimpath --coverpkg ./internal/...' \
109
+ PGO_VERSION='${{ github.sha }}-coverage'
108
110
109
111
# Start a Docker container with the working directory mounted.
110
112
- name : Start PGO
@@ -122,7 +124,7 @@ jobs:
122
124
--env 'RELATED_IMAGE_POSTGRES_14=registry.developers.crunchydata.com/crunchydata/crunchy-postgres:ubi8-14.4-0' \
123
125
--env 'RELATED_IMAGE_POSTGRES_14_GIS_3.1=registry.developers.crunchydata.com/crunchydata/crunchy-postgres-gis:ubi8-14.4-3.1-0' \
124
126
--name 'postgres-operator' ubuntu \
125
- postgres-operator
127
+ postgres-operator --test.coverprofile 'kuttl.coverage'
126
128
127
129
- run : make tools/kuttl
128
130
- run : make generate-kuttl
@@ -138,12 +140,24 @@ jobs:
138
140
env:
139
141
KUTTL_TEST: hack/tools/kuttl test --test cluster-start --timeout=180 --parallel=1
140
142
143
+ - name : Stop PGO
144
+ run : docker stop 'postgres-operator' || true
145
+
146
+ # Upload coverage to GitHub
147
+ - run : gzip kuttl.coverage
148
+ - uses : actions/upload-artifact@v3
149
+ with :
150
+ name : " ~coverage~kuttl-k3d=${{ matrix.kubernetes }}"
151
+ path : kuttl.coverage.gz
152
+ retention-days : 1
153
+
141
154
coverage-report :
142
155
if : ${{ success() || contains(needs.*.result, 'success') }}
143
156
runs-on : ubuntu-latest
144
157
needs :
145
158
- kubernetes-api
146
159
- kubernetes-k3d
160
+ - kuttl-k3d
147
161
steps :
148
162
- uses : actions/checkout@v3
149
163
- uses : actions/setup-go@v3
@@ -174,6 +188,6 @@ jobs:
174
188
- run : gzip total-coverage.html
175
189
- uses : actions/upload-artifact@v3
176
190
with :
177
- name : coverage-report
191
+ name : coverage-report=html
178
192
path : total-coverage.html.gz
179
193
retention-days : 15
0 commit comments