@@ -96,25 +96,31 @@ jobs:
9696
9797 - name : Setup Syft
9898 id : setup-syft
99- if : false
100- uses : anchore/sbom-action/download-syft@a930d0ac434e3182448fe678398ba5713717112a # v0
99+ if : github.event_name != 'pull_request'
100+ uses : anchore/sbom-action/download-syft@62ad5284b8ced813296287a0b63906cb364b73ee # v0
101101 with :
102- syft-version : v1.20 .0
102+ syft-version : v1.39 .0
103103
104104 - name : Generate SBOM
105- if : false
105+ if : github.event_name != 'pull_request'
106106 id : generate-sbom
107107 env :
108108 IMAGE : ${{ env.IMAGE_NAME }}
109109 STREAM_NAME : ${{ matrix.stream_name }}
110110 SYFT_CMD : ${{ steps.setup-syft.outputs.cmd }}
111+ OCI_DIR : " /tmp/image-oci-dir"
111112 run : |
112- sudo systemctl start podman.socket
113+ mkdir -p ${OCI_DIR}/rootfs
114+ sudo podman container create --replace --name bluefin-tmp "localhost/${IMAGE}:${STREAM_NAME}"
115+ sudo podman export bluefin-tmp | sudo tar -C ${OCI_DIR}/rootfs -xf -
116+ sudo podman container rm bluefin-tmp
113117
114118 OUTPUT_PATH="$(mktemp -d)/sbom.json"
115119 export SYFT_PARALLELISM=$(($(nproc)*2))
116- sudo $SYFT_CMD ${IMAGE}:${STREAM_NAME} -o spdx-json=${OUTPUT_PATH}
120+ sudo $SYFT_CMD --source-name "${IMAGE}"-"${STREAM_NAME}" ${OCI_DIR} -o syft-json=${OUTPUT_PATH}
121+ du -sh ${OUTPUT_PATH}
117122 echo "OUTPUT_PATH=${OUTPUT_PATH}" >> $GITHUB_OUTPUT
123+ sudo rm -rf ${OCI_DIR}
118124
119125 - name : Rechunk Image
120126 id : rechunk-image
@@ -226,7 +232,7 @@ jobs:
226232 COSIGN_PRIVATE_KEY : ${{ secrets.SIGNING_SECRET }}
227233
228234 - name : Add SBOM Attestation
229- if : false
235+ if : github.event_name != 'pull_request'
230236 env :
231237 IMAGE : ${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_NAME }}
232238 DIGEST : ${{ steps.push.outputs.outputs && fromJSON(steps.push.outputs.outputs).digest }}
0 commit comments