@@ -159,18 +159,29 @@ jobs:
159159 echo "ERROR: arm64 base image not found"
160160 exit 1
161161 }
162- echo "Both images verified, creating manifest..."
162+ echo "Both images verified, extracting digests..."
163+
164+ # Extract the actual image digest for each architecture from the manifest list
165+ AMD64_DIGEST=$(docker manifest inspect ${{ env.REGISTRY }}/base-developer-image:amd64-ubi10-pr-${{github.event.number}} | \
166+ jq -r '.manifests[] | select(.platform.architecture == "amd64") | .digest')
167+ ARM64_DIGEST=$(docker manifest inspect ${{ env.REGISTRY }}/base-developer-image:arm64-ubi10-pr-${{github.event.number}} | \
168+ jq -r '.manifests[] | select(.platform.architecture == "arm64") | .digest')
169+
170+ echo "AMD64 digest: $AMD64_DIGEST"
171+ echo "ARM64 digest: $ARM64_DIGEST"
172+
173+ echo "Creating multi-arch manifest..."
163174 docker manifest create ${{ env.REGISTRY }}/base-developer-image:ubi10-pr-${{github.event.number}} \
164- --amend ${{ env.REGISTRY }}/base-developer-image:amd64-ubi10-pr-${{github.event.number}} \
165- --amend ${{ env.REGISTRY }}/base-developer-image:arm64-ubi10-pr-${{github.event.number}}
166-
175+ --amend ${{ env.REGISTRY }}/base-developer-image@$AMD64_DIGEST \
176+ --amend ${{ env.REGISTRY }}/base-developer-image@$ARM64_DIGEST
177+
167178 docker manifest annotate ${{ env.REGISTRY }}/base-developer-image:ubi10-pr-${{github.event.number}} \
168- ${{ env.REGISTRY }}/base-developer-image:amd64-ubi10-pr-${{github.event.number}} \
179+ ${{ env.REGISTRY }}/base-developer-image@$AMD64_DIGEST \
169180 --os linux --arch amd64
170181 docker manifest annotate ${{ env.REGISTRY }}/base-developer-image:ubi10-pr-${{github.event.number}} \
171- ${{ env.REGISTRY }}/base-developer-image:arm64-ubi10-pr-${{github.event.number}} \
182+ ${{ env.REGISTRY }}/base-developer-image@$ARM64_DIGEST \
172183 --os linux --arch arm64
173-
184+
174185 docker manifest push ${{ env.REGISTRY }}/base-developer-image:ubi10-pr-${{github.event.number}}
175186
176187 publish-udi :
@@ -189,17 +200,38 @@ jobs:
189200 echo "=========================================="
190201 echo "Publishing UDI10 manifest"
191202 echo "=========================================="
203+ echo "Verifying both architecture images exist..."
204+ docker manifest inspect ${{ env.REGISTRY }}/universal-developer-image:amd64-ubi10-pr-${{github.event.number}} || {
205+ echo "ERROR: amd64 UDI image not found"
206+ exit 1
207+ }
208+ docker manifest inspect ${{ env.REGISTRY }}/universal-developer-image:arm64-ubi10-pr-${{github.event.number}} || {
209+ echo "ERROR: arm64 UDI image not found"
210+ exit 1
211+ }
212+ echo "Both images verified, extracting digests..."
213+
214+ # Extract the actual image digest for each architecture from the manifest list
215+ AMD64_DIGEST=$(docker manifest inspect ${{ env.REGISTRY }}/universal-developer-image:amd64-ubi10-pr-${{github.event.number}} | \
216+ jq -r '.manifests[] | select(.platform.architecture == "amd64") | .digest')
217+ ARM64_DIGEST=$(docker manifest inspect ${{ env.REGISTRY }}/universal-developer-image:arm64-ubi10-pr-${{github.event.number}} | \
218+ jq -r '.manifests[] | select(.platform.architecture == "arm64") | .digest')
219+
220+ echo "AMD64 digest: $AMD64_DIGEST"
221+ echo "ARM64 digest: $ARM64_DIGEST"
222+
223+ echo "Creating multi-arch manifest..."
192224 docker manifest create ${{ env.REGISTRY }}/universal-developer-image:ubi10-pr-${{github.event.number}} \
193- --amend ${{ env.REGISTRY }}/universal-developer-image:amd64-ubi10-pr-${{github.event.number}} \
194- --amend ${{ env.REGISTRY }}/universal-developer-image:arm64-ubi10-pr-${{github.event.number}}
195-
225+ --amend ${{ env.REGISTRY }}/universal-developer-image@$AMD64_DIGEST \
226+ --amend ${{ env.REGISTRY }}/universal-developer-image@$ARM64_DIGEST
227+
196228 docker manifest annotate ${{ env.REGISTRY }}/universal-developer-image:ubi10-pr-${{github.event.number}} \
197- ${{ env.REGISTRY }}/universal-developer-image:amd64-ubi10-pr-${{github.event.number}} \
229+ ${{ env.REGISTRY }}/universal-developer-image@$AMD64_DIGEST \
198230 --os linux --arch amd64
199231 docker manifest annotate ${{ env.REGISTRY }}/universal-developer-image:ubi10-pr-${{github.event.number}} \
200- ${{ env.REGISTRY }}/universal-developer-image:arm64-ubi10-pr-${{github.event.number}} \
232+ ${{ env.REGISTRY }}/universal-developer-image@$ARM64_DIGEST \
201233 --os linux --arch arm64
202-
234+
203235 docker manifest push ${{ env.REGISTRY }}/universal-developer-image:ubi10-pr-${{github.event.number}}
204236 - name : ' Comment PR'
205237 uses : actions/github-script@v7
0 commit comments