@@ -215,43 +215,59 @@ jobs:
215
215
tags : |
216
216
# Only version, no revision
217
217
type=match,pattern=v(.*)-(.*),group=1
218
+
219
+ # First, create manifests and push to GHCR
220
+
218
221
# Manifest for either branch or semver
219
- - name : manifest-dockerhub
220
- run : docker manifest create ${{ steps.meta-dockerhub.outputs.tags }} --amend ${{ steps.meta-dockerhub.outputs.tags }}-amd64 --amend ${{ steps.meta-dockerhub.outputs.tags }}-arm64v8
221
222
- name : manifest-ghcr
222
223
run : docker manifest create ${{ steps.meta-ghcr.outputs.tags }} --amend ${{ steps.meta-ghcr.outputs.tags }}-amd64 --amend ${{ steps.meta-ghcr.outputs.tags }}-arm64v8
223
224
# Optional manifest for latest
224
- - name : manifest-dockerhub-latest
225
- run : docker manifest create ${{ env.DOCKER_IMAGE_NAME }}:latest --amend ${{ steps.meta-dockerhub.outputs.tags }}-amd64 --amend ${{ steps.meta-dockerhub.outputs.tags }}-arm64v8
226
- if : startsWith(github.ref, 'refs/tags/')
227
225
- name : manifest-ghcr-latest
228
226
run : docker manifest create ${{ env.GHCR_IMAGE_NAME }}:latest --amend ${{ steps.meta-ghcr.outputs.tags }}-amd64 --amend ${{ steps.meta-ghcr.outputs.tags }}-arm64v8
229
227
if : startsWith(github.ref, 'refs/tags/')
230
228
# Optional manifest for tag versions (includes revisions)
231
- - name : manifest-dockerhub-tags
232
- run : docker manifest create ${{ steps.meta-dockerhub-tag.outputs.tags }} --amend ${{ steps.meta-dockerhub-tag.outputs.tags }}-amd64 --amend ${{ steps.meta-dockerhub-tag.outputs.tags }}-arm64v8
233
- if : startsWith(github.ref, 'refs/tags/')
234
229
- name : manifest-ghcr-tags
235
230
run : docker manifest create ${{ steps.meta-ghcr-tag.outputs.tags }} --amend ${{ steps.meta-ghcr-tag.outputs.tags }}-amd64 --amend ${{ steps.meta-ghcr-tag.outputs.tags }}-arm64v8
236
231
if : startsWith(github.ref, 'refs/tags/')
237
232
# Push various manifests
238
- - name : push-dockerhub
239
- run : docker manifest push ${{ steps.meta-dockerhub.outputs.tags }}
240
233
- name : push-ghcr
241
234
run : docker manifest push ${{ steps.meta-ghcr.outputs.tags }}
242
- - name : push-dockerhub-latest
243
- run : docker manifest push ${{ env.DOCKER_IMAGE_NAME }}:latest
244
- if : startsWith(github.ref, 'refs/tags/')
245
235
- name : push-ghcr-latest
246
236
run : docker manifest push ${{ env.GHCR_IMAGE_NAME }}:latest
247
237
if : startsWith(github.ref, 'refs/tags/')
248
- - name : push-dockerhub-tags
249
- run : docker manifest push ${{ steps.meta-dockerhub-tag.outputs.tags }}
250
- if : startsWith(github.ref, 'refs/tags/')
251
238
- name : push-ghcr-tags
252
239
run : docker manifest push ${{ steps.meta-ghcr-tag.outputs.tags }}
253
240
if : startsWith(github.ref, 'refs/tags/')
241
+
242
+ # Retag all the things for Docker Hub
243
+ - run : docker tag ${{ steps.meta-ghcr.outputs.tags }}-amd64 ${{ steps.meta-dockerhub.outputs.tags }}-amd64
244
+ - run : docker tag ${{ steps.meta-ghcr.outputs.tags }}-arm64v8 ${{ steps.meta-dockerhub.outputs.tags }}-arm64v8
245
+
246
+ # Push images to Docker Hub
247
+ - run : docker push ${{ steps.meta-dockerhub.outputs.tags }}-amd64
248
+ - run : docker push ${{ steps.meta-dockerhub.outputs.tags }}-arm64v8
249
+
250
+ # Now, create manifests for Docker Hub
251
+
252
+ - name : manifest-dockerhub
253
+ run : docker manifest create ${{ steps.meta-dockerhub.outputs.tags }} --amend ${{ steps.meta-dockerhub.outputs.tags }}-amd64 --amend ${{ steps.meta-dockerhub.outputs.tags }}-arm64v8
254
+ - name : manifest-dockerhub-latest
255
+ run : docker manifest create ${{ env.DOCKER_IMAGE_NAME }}:latest --amend ${{ steps.meta-dockerhub.outputs.tags }}-amd64 --amend ${{ steps.meta-dockerhub.outputs.tags }}-arm64v8
256
+ if : startsWith(github.ref, 'refs/tags/')
257
+ - name : manifest-dockerhub-tags
258
+ run : docker manifest create ${{ steps.meta-dockerhub-tag.outputs.tags }} --amend ${{ steps.meta-dockerhub-tag.outputs.tags }}-amd64 --amend ${{ steps.meta-dockerhub-tag.outputs.tags }}-arm64v8
259
+ if : startsWith(github.ref, 'refs/tags/')
260
+ - name : push-dockerhub
261
+ run : docker manifest push ${{ steps.meta-dockerhub.outputs.tags }}
262
+ - name : push-dockerhub-latest
263
+ run : docker manifest push ${{ env.DOCKER_IMAGE_NAME }}:latest
264
+ if : startsWith(github.ref, 'refs/tags/')
265
+ - name : push-dockerhub-tags
266
+ run : docker manifest push ${{ steps.meta-dockerhub-tag.outputs.tags }}
267
+ if : startsWith(github.ref, 'refs/tags/')
268
+
254
269
# Update Docker Hub from README
270
+
255
271
- name : Docker Hub Description
256
272
uses : peter-evans/dockerhub-description@v3
257
273
with :
0 commit comments