From b8fe24af45976d55a6a58aec30d738e027dad1b9 Mon Sep 17 00:00:00 2001 From: Chris Gianelloni Date: Sat, 1 Apr 2023 09:17:01 -0400 Subject: [PATCH] chore(ci): tag images for use on docker hub Signed-off-by: Chris Gianelloni --- .github/workflows/publish.yml | 48 +++++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 5596db4..017510e 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -215,43 +215,59 @@ jobs: tags: | # Only version, no revision type=match,pattern=v(.*)-(.*),group=1 + + # First, create manifests and push to GHCR + # Manifest for either branch or semver - - name: manifest-dockerhub - run: docker manifest create ${{ steps.meta-dockerhub.outputs.tags }} --amend ${{ steps.meta-dockerhub.outputs.tags }}-amd64 --amend ${{ steps.meta-dockerhub.outputs.tags }}-arm64v8 - name: manifest-ghcr run: docker manifest create ${{ steps.meta-ghcr.outputs.tags }} --amend ${{ steps.meta-ghcr.outputs.tags }}-amd64 --amend ${{ steps.meta-ghcr.outputs.tags }}-arm64v8 # Optional manifest for latest - - name: manifest-dockerhub-latest - run: docker manifest create ${{ env.DOCKER_IMAGE_NAME }}:latest --amend ${{ steps.meta-dockerhub.outputs.tags }}-amd64 --amend ${{ steps.meta-dockerhub.outputs.tags }}-arm64v8 - if: startsWith(github.ref, 'refs/tags/') - name: manifest-ghcr-latest run: docker manifest create ${{ env.GHCR_IMAGE_NAME }}:latest --amend ${{ steps.meta-ghcr.outputs.tags }}-amd64 --amend ${{ steps.meta-ghcr.outputs.tags }}-arm64v8 if: startsWith(github.ref, 'refs/tags/') # Optional manifest for tag versions (includes revisions) - - name: manifest-dockerhub-tags - 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 - if: startsWith(github.ref, 'refs/tags/') - name: manifest-ghcr-tags 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 if: startsWith(github.ref, 'refs/tags/') # Push various manifests - - name: push-dockerhub - run: docker manifest push ${{ steps.meta-dockerhub.outputs.tags }} - name: push-ghcr run: docker manifest push ${{ steps.meta-ghcr.outputs.tags }} - - name: push-dockerhub-latest - run: docker manifest push ${{ env.DOCKER_IMAGE_NAME }}:latest - if: startsWith(github.ref, 'refs/tags/') - name: push-ghcr-latest run: docker manifest push ${{ env.GHCR_IMAGE_NAME }}:latest if: startsWith(github.ref, 'refs/tags/') - - name: push-dockerhub-tags - run: docker manifest push ${{ steps.meta-dockerhub-tag.outputs.tags }} - if: startsWith(github.ref, 'refs/tags/') - name: push-ghcr-tags run: docker manifest push ${{ steps.meta-ghcr-tag.outputs.tags }} if: startsWith(github.ref, 'refs/tags/') + + # Retag all the things for Docker Hub + - run: docker tag ${{ steps.meta-ghcr.outputs.tags }}-amd64 ${{ steps.meta-dockerhub.outputs.tags }}-amd64 + - run: docker tag ${{ steps.meta-ghcr.outputs.tags }}-arm64v8 ${{ steps.meta-dockerhub.outputs.tags }}-arm64v8 + + # Push images to Docker Hub + - run: docker push ${{ steps.meta-dockerhub.outputs.tags }}-amd64 + - run: docker push ${{ steps.meta-dockerhub.outputs.tags }}-arm64v8 + + # Now, create manifests for Docker Hub + + - name: manifest-dockerhub + run: docker manifest create ${{ steps.meta-dockerhub.outputs.tags }} --amend ${{ steps.meta-dockerhub.outputs.tags }}-amd64 --amend ${{ steps.meta-dockerhub.outputs.tags }}-arm64v8 + - name: manifest-dockerhub-latest + run: docker manifest create ${{ env.DOCKER_IMAGE_NAME }}:latest --amend ${{ steps.meta-dockerhub.outputs.tags }}-amd64 --amend ${{ steps.meta-dockerhub.outputs.tags }}-arm64v8 + if: startsWith(github.ref, 'refs/tags/') + - name: manifest-dockerhub-tags + 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 + if: startsWith(github.ref, 'refs/tags/') + - name: push-dockerhub + run: docker manifest push ${{ steps.meta-dockerhub.outputs.tags }} + - name: push-dockerhub-latest + run: docker manifest push ${{ env.DOCKER_IMAGE_NAME }}:latest + if: startsWith(github.ref, 'refs/tags/') + - name: push-dockerhub-tags + run: docker manifest push ${{ steps.meta-dockerhub-tag.outputs.tags }} + if: startsWith(github.ref, 'refs/tags/') + # Update Docker Hub from README + - name: Docker Hub Description uses: peter-evans/dockerhub-description@v3 with: