1- name : Docker
2-
3- # This workflow uses actions that are not certified by GitHub.
4- # They are provided by a third-party and are governed by
5- # separate terms of service, privacy policy, and support
6- # documentation.
1+ name : Create and publish a Docker image
72
83on :
94 workflow_dispatch :
1611 pull_request :
1712 branches : [ master ]
1813
19-
2014env :
21- # Use docker.io for Docker Hub if empty
22- REGISTRY : docker.io
15+ GH_REGISTRY : ghcr.io
2316 # github.repository as <account>/<repo>
24- IMAGE_NAME : simonszu/dosage
17+ GH_IMAGE_NAME : ${{ github.repository }}
18+ DOCKER_REGISTRY : docker.io
19+ DOCKER_IMAGE_NAME : simonszu/dosage
2520
2621
2722jobs :
@@ -34,23 +29,33 @@ jobs:
3429
3530 steps :
3631 - name : Checkout repository
37- uses : actions/checkout@v2
32+ uses : actions/checkout@v3
3833
39- # Login against a Docker registry except on PR
40- # https://github.com/docker/login-action
41- - name : Log into registry ${{ env.REGISTRY }}
42- if : github.event_name != 'pull_request'
43- uses : docker/login-action@v1
34+ - name : Log in to Docker Hub
35+ uses : docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
4436 with :
45- registry : ${{ env.REGISTRY }}
4637 username : ${{ secrets.DOCKER_USER }}
4738 password : ${{ secrets.DOCKER_PASSWORD }}
4839
49- # Build and push Docker image with Buildx (don't push on PR)
50- # https://github.com/docker/build-push-action
40+ - name : Log in to Github Container registry
41+ uses : docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
42+ with :
43+ registry : ${{ env.GH_REGISTRY }}
44+ username : ${{ github.actor }}
45+ password : ${{ secrets.GITHUB_TOKEN }}
46+
47+ - name : Extract metadata (tags, labels) for Docker
48+ id : meta
49+ uses : docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38
50+ with :
51+ images : |
52+ ${{ env.GH_REGISTRY }}/${{ env.GH_IMAGE_NAME }}
53+ ${{ env.DOCKER_IMAGE_NAME }}
54+
5155 - name : Build and push Docker image
52- uses : docker/build-push-action@v2
56+ uses : docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc
5357 with :
5458 context : .
55- push : ${{ github.event_name != 'pull_request' }}
56- tags : ${{ env.IMAGE_NAME }}:latest
59+ push : true
60+ tags : ${{ steps.meta.outputs.tags }}
61+ labels : ${{ steps.meta.outputs.labels }}
0 commit comments