1- name : Build and Push Docker Image
1+ name : Build and Push GHCR Image
22
33on :
44 push :
1212 default : " true"
1313
1414env :
15- DOCKER_IMAGE : ${{ secrets.DOCKERHUB_USERNAME }}/vohive
15+ CONTAINER_IMAGE : ghcr.io/ ${{ github.repository }}
1616
1717jobs :
1818 build :
1919 runs-on : ubuntu-latest
20+ permissions :
21+ contents : read
22+ packages : write
2023 steps :
2124 - name : Checkout repository
2225 uses : actions/checkout@v4
@@ -27,21 +30,24 @@ jobs:
2730 - name : Set up Docker Buildx
2831 uses : docker/setup-buildx-action@v3
2932
30- - name : Login to DockerHub
33+ - name : Login to GHCR
3134 if : github.event_name != 'pull_request'
3235 uses : docker/login-action@v3
3336 with :
34- username : ${{ secrets.DOCKERHUB_USERNAME }}
35- password : ${{ secrets.DOCKERHUB_TOKEN }}
37+ registry : ghcr.io
38+ username : ${{ github.actor }}
39+ password : ${{ secrets.GITHUB_TOKEN }}
3640
3741 - name : Extract metadata (tags, labels)
3842 id : meta
3943 uses : docker/metadata-action@v5
4044 with :
41- images : ${{ env.DOCKER_IMAGE }}
45+ images : ${{ env.CONTAINER_IMAGE }}
4246 tags : |
4347 # 总是打上 latest 标签
4448 type=raw,value=latest,enable=true
49+ # 保留 Git tag 标签 (例如 v1.0.0)
50+ type=ref,event=tag
4551 # 语义化精确版本标签 (例如 v1.0.0 会被转换为 1.0.0)
4652 type=semver,pattern={{version}}
4753
0 commit comments