3333 type : boolean
3434 required : false
3535 default : true
36- push-dirty :
36+ sbom :
37+ description : Generate SBOM?
38+ type : boolean
39+ required : false
40+ default : true
41+ push-critical :
3742 description : Push scanned images that have critical vulnerabilities?
3843 type : boolean
3944 required : false
@@ -254,14 +259,14 @@ jobs:
254259 run : if [ $(wc -l < ${{ matrix.distro.name }}-${{ matrix.distro.release }}-container-images) -le 1 ]; then exit 1; fi
255260
256261 - name : Scan built container images
257- run : src/kayobe-config/tools/scan-images.sh ${{ matrix.distro.name }}-${{ matrix.distro.release }} ${{ steps.write-kolla-tag.outputs.kolla-tag }}
262+ run : src/kayobe-config/tools/scan-images.sh ${{ matrix.distro.name }}-${{ matrix.distro.release }} ${{ steps.write-kolla-tag.outputs.kolla-tag }} ${{ inputs.sbom && '--sbom'}}
258263
259264 - name : Move image scan logs to output artifact
260265 run : mv image-scan-output image-build-logs/image-scan-output
261266
262- - name : Fail if no images have passed scanning
267+ - name : Fail if any images have critical vulnerabilities
263268 run : if [ $(wc -l < image-build-logs/image-scan-output/critical-images.txt) -gt 0 ]; then exit 1; fi
264- if : ${{ !inputs.push-dirty }}
269+ if : ${{ !inputs.push-critical }}
265270
266271 - name : Copy clean images to push-attempt-images list
267272 run : cp image-build-logs/image-scan-output/clean-images.txt image-build-logs/push-attempt-images.txt
@@ -271,13 +276,13 @@ jobs:
271276 # This should be reverted when it's decided to filter high level CVEs as well.
272277 - name : Append dirty images to push list
273278 run : |
274- cat image-build-logs/image-scan-output/dirty -images.txt >> image-build-logs/push-attempt-images.txt
279+ cat image-build-logs/image-scan-output/high -images.txt >> image-build-logs/push-attempt-images.txt
275280 if : ${{ inputs.push }}
276281
277282 - name : Append images with critical vulnerabilities to push list
278283 run : |
279284 cat image-build-logs/image-scan-output/critical-images.txt >> image-build-logs/push-attempt-images.txt
280- if : ${{ inputs.push && inputs.push-dirty }}
285+ if : ${{ inputs.push && inputs.push-critical }}
281286
282287 - name : Push images
283288 run : |
@@ -326,12 +331,12 @@ jobs:
326331 # This can be used again instead of "Fail when critical vulnerabilities are found" when it's
327332 # decided to fail the job on detecting high CVEs as well.
328333 # - name: Fail when images failed scanning
329- # run: if [ $(wc -l < image-build-logs/image-scan-output/dirty -images.txt) -gt 0 ]; then cat image-build-logs/image-scan-output/dirty -images.txt && exit 1; fi
330- # if: ${{ !inputs.push-dirty && !cancelled() }}
334+ # run: if [ $(wc -l < image-build-logs/image-scan-output/high -images.txt) -gt 0 ]; then cat image-build-logs/image-scan-output/high -images.txt && exit 1; fi
335+ # if: ${{ !inputs.push-critical && !cancelled() }}
331336
332337 - name : Fail when critical vulnerabilities are found
333338 run : if [ $(wc -l < image-build-logs/image-scan-output/critical-images.txt) -gt 0 ]; then cat image-build-logs/image-scan-output/critical-images.txt && exit 1; fi
334- if : ${{ !inputs.push-dirty && !cancelled() }}
339+ if : ${{ !inputs.push-critical && !cancelled() }}
335340
336341 - name : Remove locally built images for this run
337342 if : always() && runner.arch == 'ARM64'
0 commit comments