Skip to content

Commit ed30b94

Browse files
authored
Fixed buildx-publish
Signed-off-by: Prabhu K <Prabhu.K@ibm.com>
1 parent 1909a73 commit ed30b94

4 files changed

Lines changed: 44 additions & 240 deletions

File tree

.github/workflows/pr-check-ubi10.yaml

Lines changed: 14 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -166,50 +166,15 @@ jobs:
166166
echo "=========================================="
167167
echo "Publishing UBI10 base image manifest"
168168
echo "=========================================="
169-
echo "Verifying all architecture images exist..."
170-
docker manifest inspect ${{ env.REGISTRY }}/base-developer-image:amd64-ubi10-pr-${{github.event.number}} || {
171-
echo "ERROR: amd64 base image not found"
172-
exit 1
173-
}
174-
docker manifest inspect ${{ env.REGISTRY }}/base-developer-image:arm64-ubi10-pr-${{github.event.number}} || {
175-
echo "ERROR: arm64 base image not found"
176-
exit 1
177-
}
178-
docker manifest inspect ${{ env.REGISTRY }}/base-developer-image:ppc64le-ubi10-pr-${{github.event.number}} || {
179-
echo "ERROR: ppc64le base image not found"
180-
exit 1
181-
}
182-
echo "All images verified, extracting digests..."
183-
184-
# Extract the actual image digest for each architecture from the manifest list
185-
AMD64_DIGEST=$(docker manifest inspect ${{ env.REGISTRY }}/base-developer-image:amd64-ubi10-pr-${{github.event.number}} | \
186-
jq -r '.manifests[] | select(.platform.architecture == "amd64") | .digest')
187-
ARM64_DIGEST=$(docker manifest inspect ${{ env.REGISTRY }}/base-developer-image:arm64-ubi10-pr-${{github.event.number}} | \
188-
jq -r '.manifests[] | select(.platform.architecture == "arm64") | .digest')
189-
PPC64LE_DIGEST=$(docker manifest inspect ${{ env.REGISTRY }}/base-developer-image:ppc64le-ubi10-pr-${{github.event.number}} | \
190-
jq -r '.manifests[] | select(.platform.architecture == "ppc64le") | .digest')
191-
192-
echo "AMD64 digest: $AMD64_DIGEST"
193-
echo "ARM64 digest: $ARM64_DIGEST"
194-
echo "PPC64LE digest: $PPC64LE_DIGEST"
195-
196-
echo "Creating multi-arch manifest..."
197-
docker manifest create ${{ env.REGISTRY }}/base-developer-image:ubi10-pr-${{github.event.number}} \
198-
--amend ${{ env.REGISTRY }}/base-developer-image@$AMD64_DIGEST \
199-
--amend ${{ env.REGISTRY }}/base-developer-image@$ARM64_DIGEST \
200-
--amend ${{ env.REGISTRY }}/base-developer-image@$PPC64LE_DIGEST
201169
202-
docker manifest annotate ${{ env.REGISTRY }}/base-developer-image:ubi10-pr-${{github.event.number}} \
203-
${{ env.REGISTRY }}/base-developer-image@$AMD64_DIGEST \
204-
--os linux --arch amd64
205-
docker manifest annotate ${{ env.REGISTRY }}/base-developer-image:ubi10-pr-${{github.event.number}} \
206-
${{ env.REGISTRY }}/base-developer-image@$ARM64_DIGEST \
207-
--os linux --arch arm64
208-
docker manifest annotate ${{ env.REGISTRY }}/base-developer-image:ubi10-pr-${{github.event.number}} \
209-
${{ env.REGISTRY }}/base-developer-image@$PPC64LE_DIGEST \
210-
--os linux --arch ppc64le
170+
docker buildx imagetools create \
171+
-t ${{ env.REGISTRY }}/base-developer-image:ubi10-pr-${{github.event.number}} \
172+
${{ env.REGISTRY }}/base-developer-image:amd64-ubi10-pr-${{github.event.number}} \
173+
${{ env.REGISTRY }}/base-developer-image:arm64-ubi10-pr-${{github.event.number}} \
174+
${{ env.REGISTRY }}/base-developer-image:ppc64le-ubi10-pr-${{github.event.number}}
211175
212-
docker manifest push ${{ env.REGISTRY }}/base-developer-image:ubi10-pr-${{github.event.number}}
176+
docker buildx imagetools inspect \
177+
${{ env.REGISTRY }}/base-developer-image:ubi10-pr-${{github.event.number}}
213178
214179
publish-udi:
215180
name: Publish udi (UDI10)
@@ -227,50 +192,15 @@ jobs:
227192
echo "=========================================="
228193
echo "Publishing UDI10 manifest"
229194
echo "=========================================="
230-
echo "Verifying all architecture images exist..."
231-
docker manifest inspect ${{ env.REGISTRY }}/universal-developer-image:amd64-ubi10-pr-${{github.event.number}} || {
232-
echo "ERROR: amd64 UDI image not found"
233-
exit 1
234-
}
235-
docker manifest inspect ${{ env.REGISTRY }}/universal-developer-image:arm64-ubi10-pr-${{github.event.number}} || {
236-
echo "ERROR: arm64 UDI image not found"
237-
exit 1
238-
}
239-
docker manifest inspect ${{ env.REGISTRY }}/universal-developer-image:ppc64le-ubi10-pr-${{github.event.number}} || {
240-
echo "ERROR: ppc64le UDI image not found"
241-
exit 1
242-
}
243-
echo "All images verified, extracting digests..."
244-
245-
# Extract the actual image digest for each architecture from the manifest list
246-
AMD64_DIGEST=$(docker manifest inspect ${{ env.REGISTRY }}/universal-developer-image:amd64-ubi10-pr-${{github.event.number}} | \
247-
jq -r '.manifests[] | select(.platform.architecture == "amd64") | .digest')
248-
ARM64_DIGEST=$(docker manifest inspect ${{ env.REGISTRY }}/universal-developer-image:arm64-ubi10-pr-${{github.event.number}} | \
249-
jq -r '.manifests[] | select(.platform.architecture == "arm64") | .digest')
250-
PPC64LE_DIGEST=$(docker manifest inspect ${{ env.REGISTRY }}/universal-developer-image:ppc64le-ubi10-pr-${{github.event.number}} | \
251-
jq -r '.manifests[] | select(.platform.architecture == "ppc64le") | .digest')
252-
253-
echo "AMD64 digest: $AMD64_DIGEST"
254-
echo "ARM64 digest: $ARM64_DIGEST"
255-
echo "PPC64LE digest: $ARM64_DIGEST"
256-
257-
echo "Creating multi-arch manifest..."
258-
docker manifest create ${{ env.REGISTRY }}/universal-developer-image:ubi10-pr-${{github.event.number}} \
259-
--amend ${{ env.REGISTRY }}/universal-developer-image@$AMD64_DIGEST \
260-
--amend ${{ env.REGISTRY }}/universal-developer-image@$ARM64_DIGEST \
261-
--amend ${{ env.REGISTRY }}/universal-developer-image@$PPC64LE_DIGEST
262195
263-
docker manifest annotate ${{ env.REGISTRY }}/universal-developer-image:ubi10-pr-${{github.event.number}} \
264-
${{ env.REGISTRY }}/universal-developer-image@$AMD64_DIGEST \
265-
--os linux --arch amd64
266-
docker manifest annotate ${{ env.REGISTRY }}/universal-developer-image:ubi10-pr-${{github.event.number}} \
267-
${{ env.REGISTRY }}/universal-developer-image@$ARM64_DIGEST \
268-
--os linux --arch arm64
269-
docker manifest annotate ${{ env.REGISTRY }}/universal-developer-image:ubi10-pr-${{github.event.number}} \
270-
${{ env.REGISTRY }}/universal-developer-image@$PPC64LE_DIGEST \
271-
--os linux --arch ppc64le
196+
docker buildx imagetools create \
197+
-t ${{ env.REGISTRY }}/universal-developer-image:ubi10-pr-${{github.event.number}} \
198+
${{ env.REGISTRY }}/universal-developer-image:amd64-ubi10-pr-${{github.event.number}} \
199+
${{ env.REGISTRY }}/universal-developer-image:arm64-ubi10-pr-${{github.event.number}} \
200+
${{ env.REGISTRY }}/universal-developer-image:ppc64le-ubi10-pr-${{github.event.number}}
272201
273-
docker manifest push ${{ env.REGISTRY }}/universal-developer-image:ubi10-pr-${{github.event.number}}
202+
docker buildx imagetools inspect \
203+
${{ env.REGISTRY }}/universal-developer-image:ubi10-pr-${{github.event.number}}
274204
- name: 'Comment PR'
275205
uses: actions/github-script@v7
276206
with:

.github/workflows/pr-check.yaml

Lines changed: 11 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -165,50 +165,12 @@ jobs:
165165
echo "=========================================="
166166
echo "Publishing UBI9 base image manifest"
167167
echo "=========================================="
168-
echo "Verifying all architecture images exist..."
169-
docker manifest inspect ${{ env.REGISTRY }}/base-developer-image:amd64-pr-${{github.event.number}} || {
170-
echo "ERROR: amd64 base image not found"
171-
exit 1
172-
}
173-
docker manifest inspect ${{ env.REGISTRY }}/base-developer-image:arm64-pr-${{github.event.number}} || {
174-
echo "ERROR: arm64 base image not found"
175-
exit 1
176-
}
177-
docker manifest inspect ${{ env.REGISTRY }}/base-developer-image:ppc64le-pr-${{github.event.number}} || {
178-
echo "ERROR: ppc64le base image not found"
179-
exit 1
180-
}
181-
echo "All images verified, extracting digests..."
182-
183-
# Extract the actual image digest for each architecture from the manifest list
184-
AMD64_DIGEST=$(docker manifest inspect ${{ env.REGISTRY }}/base-developer-image:amd64-pr-${{github.event.number}} | \
185-
jq -r '.manifests[] | select(.platform.architecture == "amd64") | .digest')
186-
ARM64_DIGEST=$(docker manifest inspect ${{ env.REGISTRY }}/base-developer-image:arm64-pr-${{github.event.number}} | \
187-
jq -r '.manifests[] | select(.platform.architecture == "arm64") | .digest')
188-
PPC64LE_DIGEST=$(docker manifest inspect ${{ env.REGISTRY }}/base-developer-image:ppc64le-pr-${{github.event.number}} | \
189-
jq -r '.manifests[] | select(.platform.architecture == "ppc64le") | .digest')
190-
191-
echo "AMD64 digest: $AMD64_DIGEST"
192-
echo "ARM64 digest: $ARM64_DIGEST"
193-
echo "PPC64LE digest: $PPC64LE_DIGEST"
194-
195-
echo "Creating multi-arch manifest..."
196-
docker manifest create ${{ env.REGISTRY }}/base-developer-image:pr-${{github.event.number}} \
197-
--amend ${{ env.REGISTRY }}/base-developer-image@$AMD64_DIGEST \
198-
--amend ${{ env.REGISTRY }}/base-developer-image@$ARM64_DIGEST \
199-
--amend ${{ env.REGISTRY }}/base-developer-image@$PPC64LE_DIGEST
200-
201-
docker manifest annotate ${{ env.REGISTRY }}/base-developer-image:pr-${{github.event.number}} \
202-
${{ env.REGISTRY }}/base-developer-image@$AMD64_DIGEST \
203-
--os linux --arch amd64
204-
docker manifest annotate ${{ env.REGISTRY }}/base-developer-image:pr-${{github.event.number}} \
205-
${{ env.REGISTRY }}/base-developer-image@$ARM64_DIGEST \
206-
--os linux --arch arm64
207-
docker manifest annotate ${{ env.REGISTRY }}/base-developer-image:pr-${{github.event.number}} \
208-
${{ env.REGISTRY }}/base-developer-image@$PPC64LE_DIGEST \
209-
--os linux --arch ppc64le
210-
211-
docker manifest push ${{ env.REGISTRY }}/base-developer-image:pr-${{github.event.number}}
168+
169+
docker buildx imagetools create \
170+
-t ${{ env.REGISTRY }}/base-developer-image:pr-${{github.event.number}} \
171+
${{ env.REGISTRY }}/base-developer-image:amd64-pr-${{github.event.number}} \
172+
${{ env.REGISTRY }}/base-developer-image:arm64-pr-${{github.event.number}} \
173+
${{ env.REGISTRY }}/base-developer-image:ppc64le-pr-${{github.event.number}}
212174
213175
publish-udi:
214176
name: Publish udi (UDI9)
@@ -226,50 +188,12 @@ jobs:
226188
echo "=========================================="
227189
echo "Publishing UDI9 manifest"
228190
echo "=========================================="
229-
echo "Verifying all architecture images exist..."
230-
docker manifest inspect ${{ env.REGISTRY }}/universal-developer-image:amd64-pr-${{github.event.number}} || {
231-
echo "ERROR: amd64 UDI image not found"
232-
exit 1
233-
}
234-
docker manifest inspect ${{ env.REGISTRY }}/universal-developer-image:arm64-pr-${{github.event.number}} || {
235-
echo "ERROR: arm64 UDI image not found"
236-
exit 1
237-
}
238-
docker manifest inspect ${{ env.REGISTRY }}/universal-developer-image:ppc64le-pr-${{github.event.number}} || {
239-
echo "ERROR: ppc64le UDI image not found"
240-
exit 1
241-
}
242-
echo "All images verified, extracting digests..."
243-
244-
# Extract the actual image digest for each architecture from the manifest list
245-
AMD64_DIGEST=$(docker manifest inspect ${{ env.REGISTRY }}/universal-developer-image:amd64-pr-${{github.event.number}} | \
246-
jq -r '.manifests[] | select(.platform.architecture == "amd64") | .digest')
247-
ARM64_DIGEST=$(docker manifest inspect ${{ env.REGISTRY }}/universal-developer-image:arm64-pr-${{github.event.number}} | \
248-
jq -r '.manifests[] | select(.platform.architecture == "arm64") | .digest')
249-
PPC64LE_DIGEST=$(docker manifest inspect ${{ env.REGISTRY }}/universal-developer-image:ppc64le-pr-${{github.event.number}} | \
250-
jq -r '.manifests[] | select(.platform.architecture == "ppc64le") | .digest')
251-
252-
echo "AMD64 digest: $AMD64_DIGEST"
253-
echo "ARM64 digest: $ARM64_DIGEST"
254-
echo "PPC64LE digest: $PPC64LE_DIGEST"
255-
256-
echo "Creating multi-arch manifest..."
257-
docker manifest create ${{ env.REGISTRY }}/universal-developer-image:pr-${{github.event.number}} \
258-
--amend ${{ env.REGISTRY }}/universal-developer-image@$AMD64_DIGEST \
259-
--amend ${{ env.REGISTRY }}/universal-developer-image@$ARM64_DIGEST \
260-
--amend ${{ env.REGISTRY }}/universal-developer-image@$PPC64LE_DIGEST
261-
262-
docker manifest annotate ${{ env.REGISTRY }}/universal-developer-image:pr-${{github.event.number}} \
263-
${{ env.REGISTRY }}/universal-developer-image@$AMD64_DIGEST \
264-
--os linux --arch amd64
265-
docker manifest annotate ${{ env.REGISTRY }}/universal-developer-image:pr-${{github.event.number}} \
266-
${{ env.REGISTRY }}/universal-developer-image@$ARM64_DIGEST \
267-
--os linux --arch arm64
268-
docker manifest annotate ${{ env.REGISTRY }}/universal-developer-image:pr-${{github.event.number}} \
269-
${{ env.REGISTRY }}/universal-developer-image@$PPC64LE_DIGEST \
270-
--os linux --arch ppc64le
271191
272-
docker manifest push ${{ env.REGISTRY }}/universal-developer-image:pr-${{github.event.number}}
192+
docker buildx imagetools create \
193+
-t ${{ env.REGISTRY }}/universal-developer-image:pr-${{github.event.number}} \
194+
${{ env.REGISTRY }}/universal-developer-image:amd64-pr-${{github.event.number}} \
195+
${{ env.REGISTRY }}/universal-developer-image:arm64-pr-${{github.event.number}} \
196+
${{ env.REGISTRY }}/universal-developer-image:ppc64le-pr-${{github.event.number}}
273197
- name: 'Comment PR'
274198
uses: actions/github-script@v7
275199
with:

.github/workflows/ubi10-build.yaml

Lines changed: 10 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -89,24 +89,11 @@ jobs:
8989
run: |
9090
for tag in ubi10-latest ubi10-${{env.short_sha}};
9191
do
92-
docker manifest create ${{ env.REGISTRY }}/base-developer-image:${tag} \
93-
--amend ${{ env.REGISTRY }}/base-developer-image:amd64-ubi10-${{env.short_sha}} \
94-
--amend ${{ env.REGISTRY }}/base-developer-image:arm64-ubi10-${{env.short_sha}} \
95-
--amend ${{ env.REGISTRY }}/base-developer-image:ppc64le-ubi10-${{env.short_sha}}
96-
97-
docker manifest annotate ${{ env.REGISTRY }}/base-developer-image:${tag} \
92+
docker buildx imagetools create \
93+
-t ${{ env.REGISTRY }}/base-developer-image:${tag} \
9894
${{ env.REGISTRY }}/base-developer-image:amd64-ubi10-${{env.short_sha}} \
99-
--os linux --arch amd64
100-
101-
docker manifest annotate ${{ env.REGISTRY }}/base-developer-image:${tag} \
102-
${{ env.REGISTRY }}/base-developer-image:arm64-ubi10-${{env.short_sha}} \
103-
--os linux --arch arm64
104-
105-
docker manifest annotate ${{ env.REGISTRY }}/base-developer-image:${tag} \
106-
${{ env.REGISTRY }}/base-developer-image:ppc64le-ubi10-${{env.short_sha}} \
107-
--os linux --arch ppc64le
108-
109-
docker manifest push ${{ env.REGISTRY }}/base-developer-image:${tag}
95+
${{ env.REGISTRY }}/base-developer-image:arm64-ubi10-${{env.short_sha}} \
96+
${{ env.REGISTRY }}/base-developer-image:ppc64le-ubi10-${{env.short_sha}}
11097
done
11198
11299
build-udi:
@@ -162,6 +149,8 @@ jobs:
162149
name: Publish udi
163150
runs-on: ubuntu-22.04
164151
needs: build-udi
152+
outputs:
153+
uniq_tag: ${{ steps.setTagName.outputs.uniq_tag }}
165154
steps:
166155
- name: Checkout
167156
uses: actions/checkout@v4
@@ -177,24 +166,11 @@ jobs:
177166
run: |
178167
for tag in ubi10-latest ubi10-${{env.short_sha}};
179168
do
180-
docker manifest create ${{ env.REGISTRY }}/universal-developer-image:${tag} \
181-
--amend ${{ env.REGISTRY }}/universal-developer-image:amd64-ubi10-${{env.short_sha}} \
182-
--amend ${{ env.REGISTRY }}/universal-developer-image:arm64-ubi10-${{env.short_sha}} \
183-
--amend ${{ env.REGISTRY }}/universal-developer-image:ppc64le-ubi10-${{env.short_sha}}
184-
185-
docker manifest annotate ${{ env.REGISTRY }}/universal-developer-image:${tag} \
169+
docker buildx imagetools create \
170+
-t ${{ env.REGISTRY }}/universal-developer-image:${tag} \
186171
${{ env.REGISTRY }}/universal-developer-image:amd64-ubi10-${{env.short_sha}} \
187-
--os linux --arch amd64
188-
189-
docker manifest annotate ${{ env.REGISTRY }}/universal-developer-image:${tag} \
190-
${{ env.REGISTRY }}/universal-developer-image:arm64-ubi10-${{env.short_sha}} \
191-
--os linux --arch arm64
192-
193-
docker manifest annotate ${{ env.REGISTRY }}/universal-developer-image:${tag} \
194-
${{ env.REGISTRY }}/universal-developer-image:ppc64le-ubi10-${{env.short_sha}} \
195-
--os linux --arch ppc64le
196-
197-
docker manifest push ${{ env.REGISTRY }}/universal-developer-image:${tag}
172+
${{ env.REGISTRY }}/universal-developer-image:arm64-ubi10-${{env.short_sha}} \
173+
${{ env.REGISTRY }}/universal-developer-image:ppc64le-ubi10-${{env.short_sha}}
198174
done
199175
- name: Get tag with uniq prefix
200176
id: setTagName

0 commit comments

Comments
 (0)