Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 32 additions & 16 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down