@@ -23,8 +23,12 @@ concurrency:
2323 cancel-in-progress : true
2424
2525env :
26- REGISTRY : ghcr.io
27- IMAGE_NAME : ${{ github.repository }}
26+ # GitHub Container Registry
27+ GHCR_REGISTRY : ghcr.io
28+ GHCR_IMAGE_NAME : ${{ github.repository }}
29+ # Docker Hub
30+ DOCKERHUB_REGISTRY : docker.io
31+ DOCKERHUB_IMAGE_NAME : konard/sandbox
2832
2933jobs :
3034 # === DETECT CHANGES ===
@@ -105,7 +109,7 @@ jobs:
105109 with :
106110 context : .
107111 push : false
108- tags : ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:test
112+ tags : ${{ env.GHCR_IMAGE_NAME }}:test
109113 cache-from : type=gha
110114 cache-to : type=gha,mode=max
111115
@@ -184,15 +188,24 @@ jobs:
184188 - name : Log in to GitHub Container Registry
185189 uses : docker/login-action@v3
186190 with :
187- registry : ${{ env.REGISTRY }}
191+ registry : ${{ env.GHCR_REGISTRY }}
188192 username : ${{ github.actor }}
189193 password : ${{ secrets.GITHUB_TOKEN }}
190194
195+ - name : Log in to Docker Hub
196+ uses : docker/login-action@v3
197+ with :
198+ registry : ${{ env.DOCKERHUB_REGISTRY }}
199+ username : ${{ secrets.DOCKERHUB_USERNAME }}
200+ password : ${{ secrets.DOCKERHUB_TOKEN }}
201+
191202 - name : Extract metadata (tags, labels) for Docker
192203 id : meta
193204 uses : docker/metadata-action@v5
194205 with :
195- images : ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
206+ images : |
207+ ${{ env.GHCR_REGISTRY }}/${{ env.GHCR_IMAGE_NAME }}
208+ ${{ env.DOCKERHUB_IMAGE_NAME }}
196209 tags : |
197210 type=raw,value=latest
198211 type=sha,prefix=
@@ -232,15 +245,24 @@ jobs:
232245 - name : Log in to GitHub Container Registry
233246 uses : docker/login-action@v3
234247 with :
235- registry : ${{ env.REGISTRY }}
248+ registry : ${{ env.GHCR_REGISTRY }}
236249 username : ${{ github.actor }}
237250 password : ${{ secrets.GITHUB_TOKEN }}
238251
252+ - name : Log in to Docker Hub
253+ uses : docker/login-action@v3
254+ with :
255+ registry : ${{ env.DOCKERHUB_REGISTRY }}
256+ username : ${{ secrets.DOCKERHUB_USERNAME }}
257+ password : ${{ secrets.DOCKERHUB_TOKEN }}
258+
239259 - name : Extract metadata (tags, labels) for Docker
240260 id : meta
241261 uses : docker/metadata-action@v5
242262 with :
243- images : ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
263+ images : |
264+ ${{ env.GHCR_REGISTRY }}/${{ env.GHCR_IMAGE_NAME }}
265+ ${{ env.DOCKERHUB_IMAGE_NAME }}
244266 flavor : |
245267 suffix=-arm64
246268 tags : |
@@ -272,17 +294,35 @@ jobs:
272294 - name : Log in to GitHub Container Registry
273295 uses : docker/login-action@v3
274296 with :
275- registry : ${{ env.REGISTRY }}
297+ registry : ${{ env.GHCR_REGISTRY }}
276298 username : ${{ github.actor }}
277299 password : ${{ secrets.GITHUB_TOKEN }}
278300
279- - name : Create and push multi-arch manifest
301+ - name : Log in to Docker Hub
302+ uses : docker/login-action@v3
303+ with :
304+ registry : ${{ env.DOCKERHUB_REGISTRY }}
305+ username : ${{ secrets.DOCKERHUB_USERNAME }}
306+ password : ${{ secrets.DOCKERHUB_TOKEN }}
307+
308+ - name : Create and push multi-arch manifest (GHCR)
309+ run : |
310+ # Create manifest for latest tag on GHCR
311+ docker manifest create ${{ env.GHCR_REGISTRY }}/${{ env.GHCR_IMAGE_NAME }}:latest \
312+ --amend ${{ env.GHCR_REGISTRY }}/${{ env.GHCR_IMAGE_NAME }}:latest \
313+ --amend ${{ env.GHCR_REGISTRY }}/${{ env.GHCR_IMAGE_NAME }}:latest-arm64
314+
315+ docker manifest push ${{ env.GHCR_REGISTRY }}/${{ env.GHCR_IMAGE_NAME }}:latest
316+
317+ echo "GHCR multi-arch manifest created and pushed successfully"
318+
319+ - name : Create and push multi-arch manifest (Docker Hub)
280320 run : |
281- # Create manifest for latest tag
282- docker manifest create ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest \
283- --amend ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest \
284- --amend ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest-arm64
321+ # Create manifest for latest tag on Docker Hub
322+ docker manifest create ${{ env.DOCKERHUB_IMAGE_NAME }}:latest \
323+ --amend ${{ env.DOCKERHUB_IMAGE_NAME }}:latest \
324+ --amend ${{ env.DOCKERHUB_IMAGE_NAME }}:latest-arm64
285325
286- docker manifest push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
326+ docker manifest push ${{ env.DOCKERHUB_IMAGE_NAME }}:latest
287327
288- echo "Multi -arch manifest created and pushed successfully"
328+ echo "Docker Hub multi -arch manifest created and pushed successfully"
0 commit comments