@@ -12,22 +12,26 @@ concurrency:
1212jobs :
1313 production-deploy :
1414 runs-on : ubuntu-latest
15+ permissions :
16+ contents : read
17+ packages : write
1518
1619 steps :
1720 - name : Check out latest commit
1821 uses : actions/checkout@v4
1922
20- - name : Log in to Docker Hub
23+ - name : Log in to GitHub Container Registry
2124 uses : docker/login-action@v3
2225 with :
23- username : ${{ secrets.DOCKERHUB_USERNAME }}
24- password : ${{ secrets.DOCKERHUB_TOKEN }}
26+ registry : ghcr.io
27+ username : ${{ github.actor }}
28+ password : ${{ secrets.GITHUB_TOKEN }}
2529
2630 - name : Extract metadata (tags, labels) for Docker
2731 id : meta
2832 uses : docker/metadata-action@v5
2933 with :
30- images : osuakatsuki/beatmaps-service
34+ images : ghcr.io/ osuakatsuki/beatmaps-service
3135
3236 - name : Build and push Docker image
3337 uses : docker/build-push-action@v5
3640 file : ./Dockerfile
3741 push : true
3842 tags : |
39- ${{ secrets.DOCKERHUB_USERNAME }} /beatmaps-service:latest
40- ${{ secrets.DOCKERHUB_USERNAME }} /beatmaps-service:${{ github.sha }}
43+ ghcr.io/osuakatsuki /beatmaps-service:latest
44+ ghcr.io/osuakatsuki /beatmaps-service:${{ github.sha }}
4145 labels : ${{ steps.meta.outputs.labels }}
4246
4347 - name : Deploy to production
4650 host : ${{ secrets.SERVER_HOST }}
4751 username : root
4852 key : ${{ secrets.SERVER_SSH_KEY }}
53+ envs : GHCR_TOKEN
4954 script : |
55+ echo "$GHCR_TOKEN" | docker login ghcr.io -u github-actions --password-stdin
5056 cd /opt/akatsuki
5157 docker compose pull beatmaps-service
5258 docker compose up -d beatmaps-service
59+ env :
60+ GHCR_TOKEN : ${{ secrets.GITHUB_TOKEN }}
0 commit comments