@@ -215,43 +215,59 @@ jobs:
215215 tags : |
216216 # Only version, no revision
217217 type=match,pattern=v(.*)-(.*),group=1
218+
219+ # First, create manifests and push to GHCR
220+
218221 # 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
221222 - name : manifest-ghcr
222223 run : docker manifest create ${{ steps.meta-ghcr.outputs.tags }} --amend ${{ steps.meta-ghcr.outputs.tags }}-amd64 --amend ${{ steps.meta-ghcr.outputs.tags }}-arm64v8
223224 # 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/')
227225 - name : manifest-ghcr-latest
228226 run : docker manifest create ${{ env.GHCR_IMAGE_NAME }}:latest --amend ${{ steps.meta-ghcr.outputs.tags }}-amd64 --amend ${{ steps.meta-ghcr.outputs.tags }}-arm64v8
229227 if : startsWith(github.ref, 'refs/tags/')
230228 # 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/')
234229 - name : manifest-ghcr-tags
235230 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
236231 if : startsWith(github.ref, 'refs/tags/')
237232 # Push various manifests
238- - name : push-dockerhub
239- run : docker manifest push ${{ steps.meta-dockerhub.outputs.tags }}
240233 - name : push-ghcr
241234 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/')
245235 - name : push-ghcr-latest
246236 run : docker manifest push ${{ env.GHCR_IMAGE_NAME }}:latest
247237 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/')
251238 - name : push-ghcr-tags
252239 run : docker manifest push ${{ steps.meta-ghcr-tag.outputs.tags }}
253240 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+
254269 # Update Docker Hub from README
270+
255271 - name : Docker Hub Description
256272 uses : peter-evans/dockerhub-description@v3
257273 with :
0 commit comments