6868 name : bake-meta
6969 path : /tmp
7070
71- - name : Set up QEMU
72- uses : docker/setup-qemu-action@v3
73-
7471 - name : Set up Docker Buildx
7572 uses : docker/setup-buildx-action@v3
7673
8582 uses : docker/bake-action@v5
8683 with :
8784 sbom : true
85+ provenance : true
8886 files : |
8987 ./docker-bake.hcl
9088 /tmp/bake-meta.json
@@ -109,14 +107,18 @@ jobs:
109107 retention-days : 1
110108
111109 - name : Attest Build Provenance
112- uses : actions/attest-build-provenance@v1
110+ uses : actions/attest-build-provenance@v2
113111 with :
114112 subject-digest : " ${{ fromJSON(steps.bake.outputs.metadata).image['containerimage.digest'] }}"
115113 push-to-registry : false
116- subject-name : ${{ env.REGISTRY_IMAGE }}
114+ subject-name : ${{ env.REGISTRY_IMAGE }}
117115
118116 merge :
119117 runs-on : ubuntu-latest
118+ permissions :
119+ id-token : write
120+ contents : read
121+ attestations : write
120122 needs :
121123 - build
122124 steps :
@@ -148,6 +150,20 @@ jobs:
148150 docker buildx imagetools create $(jq -cr '.target."docker-metadata-action".tags | map(select(startswith("${{ env.REGISTRY_IMAGE }}")) | "-t " + .) | join(" ")' /tmp/bake-meta.json) \
149151 $(printf '${{ env.REGISTRY_IMAGE }}@sha256:%s ' *)
150152
153+ - name : Get merged manifest digest
154+ id : manifest
155+ run : |
156+ TAG=$(jq -r '.target."docker-metadata-action".args.DOCKER_META_VERSION' /tmp/bake-meta.json)
157+ DIGEST="sha256:$(docker buildx imagetools inspect "${{ env.REGISTRY_IMAGE }}:${TAG}" --raw | sha256sum | cut -d ' ' -f1)"
158+ echo "digest=${DIGEST}" >> $GITHUB_OUTPUT
159+
160+ - name : Attest Merged Manifest Provenance
161+ uses : actions/attest-build-provenance@v2
162+ with :
163+ subject-digest : ${{ steps.manifest.outputs.digest }}
164+ subject-name : ${{ env.REGISTRY_IMAGE }}
165+ push-to-registry : false
166+
151167 - name : Inspect image
152168 run : |
153169 docker buildx imagetools inspect ${{ env.REGISTRY_IMAGE }}:$(jq -r '.target."docker-metadata-action".args.DOCKER_META_VERSION' /tmp/bake-meta.json)
0 commit comments