1+ name : Publish Docker image
2+ on :
3+ release :
4+ types : [ published ]
5+ push :
6+ branches :
7+ - master
8+ - develop
9+ jobs :
10+ PushDockerImage :
11+ if : github.repository == 'YourRepositoryNameHere'
12+ name : Push Docker Image
13+ runs-on : ubuntu-latest
14+ permissions :
15+ packages : write
16+ contents : read
17+ attestations : write
18+ id-token : write
19+ steps :
20+ - name : Check out the repo
21+ uses : actions/checkout@v4
22+
23+ - name : Log in to Docker Hub
24+ uses : docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a
25+ with :
26+ username : ${{ secrets.DOCKER_USERNAME }}
27+ password : ${{ secrets.DOCKER_PASSWORD }}
28+
29+ - name : Extract metadata (tags, labels) for Docker
30+ id : meta
31+ uses : docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7
32+ with :
33+ images : collaborativestatemachines/cirrina
34+ tags : |
35+ type=semver,pattern={{version}},enable=${{ github.event_name == 'release' }}
36+ type=raw,value=stable,enable=${{ github.event_name == 'release' }}
37+
38+ type=raw,value=nightly,enable=${{ github.ref == 'refs/heads/master' }}
39+ type=sha,enable=${{ github.ref == 'refs/heads/master' }}
40+
41+ type=raw,value=unstable,enable=${{ github.ref == 'refs/heads/develop' }}
42+ type=sha,enable=${{ github.ref == 'refs/heads/develop' }}
43+
44+ - name : Build and push Docker image
45+ id : push
46+ uses : docker/build-push-action@3b5e8027fcad23fda98b2e3ac259d8d67585f671
47+ with :
48+ context : .
49+ file : ./Dockerfile
50+ push : true
51+ tags : ${{ steps.meta.outputs.tags }}
52+ labels : ${{ steps.meta.outputs.labels }}
0 commit comments