@@ -33,18 +33,25 @@ jobs:
33
33
if : ${{ github.ref_type == 'tag' }}
34
34
runs-on : ubuntu-latest
35
35
env :
36
+ DOCKERHUB_USER : ${{ secrets.DOCKERHUB_USER }}
36
37
IMAGE_ID : ${{ needs.build.outputs.image-id }}
38
+ REGISTRIES : ghcr.io # docker.io is appended dynamically
37
39
steps :
38
40
- name : Generate tags
39
41
uses : docker/metadata-action@8e5442c4ef9f78752691e2d8f8d19755c6f78e81
40
42
with :
41
43
images : |
42
- ghcr.io/ ${{ github.repository_owner }}/ozone-runner
44
+ ${{ github.repository_owner }}/ozone-runner
43
45
tags : |
44
46
type=ref,event=tag
45
47
flavor : |
46
48
latest=false
47
49
50
+ - name : Add Docker Hub to targets
51
+ if : ${{ env.DOCKERHUB_USER }}
52
+ run : |
53
+ echo "REGISTRIES=${{ env.REGISTRIES }} docker.io" >> $GITHUB_ENV
54
+
48
55
- name : Pull image
49
56
run : |
50
57
docker pull "$IMAGE_ID"
56
63
username : ${{ github.repository_owner }}
57
64
password : ${{ secrets.GITHUB_TOKEN }}
58
65
66
+ - name : Login to Docker Hub
67
+ if : ${{ env.DOCKERHUB_USER }}
68
+ uses : docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567
69
+ with :
70
+ username : ${{ env.DOCKERHUB_USER }}
71
+ password : ${{ secrets.DOCKERHUB_TOKEN }}
72
+
59
73
- name : Apply tags to existing image
60
74
run : |
61
- for tag in $DOCKER_METADATA_OUTPUT_TAGS; do
62
- docker tag "$IMAGE_ID" "$tag"
63
- docker push "$tag"
75
+ set -x
76
+ for registry in $REGISTRIES; do
77
+ opts="$(echo "$DOCKER_METADATA_OUTPUT_TAGS" | sed "s@^@--tag $registry/@g" | xargs echo)"
78
+ if [[ -n "$opts" ]]; then
79
+ docker buildx imagetools create $opts "$IMAGE_ID"
80
+ fi
64
81
done
0 commit comments