@@ -267,7 +267,7 @@ jobs:
267
267
with :
268
268
sarif_file : snyk.sarif
269
269
270
- govulncheck :
270
+ govulncheck-run :
271
271
runs-on : ubuntu-24.04
272
272
timeout-minutes : 30
273
273
steps :
@@ -278,12 +278,65 @@ jobs:
278
278
with :
279
279
go-version : ${{ env.GO_VERSION }}
280
280
cache-dependency-path : ' **/go.sum'
281
+
281
282
- name : Install Tools
282
283
run : make install-tools
284
+
285
+ - run : govulncheck --version
286
+
283
287
- name : Run `govulncheck` script
284
- run : ./.github/workflows/scripts/govulncheck-sarif.sh
288
+ env :
289
+ GOVULN_OPTS : --format sarif --scan package
290
+ run : ./.github/workflows/scripts/govulncheck-run.sh
291
+
292
+ - name : Save govulncheck results as artifact
293
+ uses : actions/upload-artifact@v4
294
+ with :
295
+ name : govulncheck-results
296
+ path : ./govulncheck/
297
+
298
+ govulncheck-categories :
299
+ runs-on : ubuntu-24.04
300
+ outputs :
301
+ matrix : ${{ steps.capture-packages.outputs.matrix }}
302
+ steps :
303
+ - name : Checkout Repo
304
+ uses : actions/checkout@v4
305
+ - name : Setup Go
306
+ uses : actions/setup-go@v5
307
+ with :
308
+ go-version : ${{ env.GO_VERSION }}
309
+ cache-dependency-path : ' **/go.sum'
310
+ - name : Capture Go Packages
311
+ id : capture-packages
312
+ run : |
313
+ REPO_PREFIX=$(go list -m)
314
+ PACKAGES=$(go list ./... | sed "s|^$REPO_PREFIX/||" | tr '/' '_')
315
+ JSON_ARRAY=$(echo $PACKAGES | jq -R -s 'split("\n") | map(select(. != ""))' | sed "s/\"/'/g")
316
+ category=$(for p in $(echo -e "$PACKAGES"); do echo "\"$p\","; done)
317
+ matrix=$(echo "{\"category\": [${category%,}]}" | tr -d '\n')
318
+ echo "$matrix" | jq
319
+ echo $matrix
320
+ echo "matrix=${matrix}" >> $GITHUB_OUTPUT
321
+
322
+ govulncheck-upload :
323
+ runs-on : ubuntu-24.04
324
+ needs : [govulncheck-run, govulncheck-categories]
325
+ strategy :
326
+ matrix : ${{ fromJSON(needs.govulncheck-categories.outputs.matrix) }}
327
+ steps :
328
+ - name : Checkout Repo
329
+ uses : actions/checkout@v4
330
+
331
+ - name : Download govulncheck results artifact
332
+ uses : actions/download-artifact@v4
333
+ with :
334
+ name : govulncheck-results
335
+ path : ./govulncheck/
336
+
285
337
- name : Upload result to GitHub Code Scanning
286
338
if : always()
287
339
uses : github/codeql-action/upload-sarif@v3
288
340
with :
289
- sarif_file : ./govulncheck/
341
+ sarif_file : ./govulncheck/${{ matrix.category }}.sarif
342
+ category : ${{ matrix.category }}
0 commit comments