@@ -2,67 +2,58 @@ name: CI/CD
22
33on :
44 push :
5- branches : ["main", "feat-user-manage"]
6- workflow_dispatch :
5+ branches :
6+ - main
77
88jobs :
99 build_docker :
1010 name : Build Docker
1111 runs-on : ubuntu-latest
1212 steps :
13- - name : Checkout
14- uses : actions/checkout@v3
15- - name : Set up QEMU
16- uses : docker/setup-qemu-action@v2
17- - name : Set up Docker Buildx
18- uses : docker/setup-buildx-action@v2
13+ - name : Docker meta
14+ id : meta
15+ uses : docker/metadata-action@v5
16+ with :
17+ images : |
18+ ${{ vars.DOCKERHUB_USERNAME }}/${{ vars.IMAGE_NAME }}
19+ ${{ vars.CR }}/${{ vars.NAMESPACE }}/${{ vars.IMAGE_NAME }}
20+ ${{ vars.ACR }}/${{ vars.NAMESPACE }}/${{ vars.IMAGE_NAME }}
21+ tags : |
22+ type=sha
23+ latest
1924 - name : Login to DockerHub
20- uses : docker/login-action@v2
25+ uses : docker/login-action@v3
2126 with :
2227 username : ${{ vars.DOCKERHUB_USERNAME }}
2328 password : ${{ secrets.DOCKERHUB_PASSWORD }}
29+ - name : Login to CR
30+ uses : docker/login-action@v3
31+ with :
32+ registry : ${{ vars.CR }}
33+ username : ${{ github.actor }}
34+ password : ${{ secrets.CR_TOKEN }}
35+ - name : Login to ACR
36+ uses : docker/login-action@v3
37+ with :
38+ registry : ${{ vars.ACR }}
39+ username : ${{ vars.ACR_USERNAME }}
40+ password : ${{ secrets.ACR_PASSWORD }}
41+ - name : Set up QEMU
42+ uses : docker/setup-qemu-action@v3
43+ - name : Set up Docker Buildx
44+ uses : docker/setup-buildx-action@v3
2445 - name : Build and push
25- id : docker_build
26- uses : docker/build-push-action@v4
46+ uses : docker/build-push-action@v6
2747 with :
28- context : .
2948 push : true
30- platforms : linux/amd64
31- tags : |
32- ${{ vars.DOCKERHUB_USERNAME }}/${{ vars.IMAGE_NAME }}:${{ github.ref == 'refs/heads/main' && 'latest' || 'user' }}
49+ tags : ${{ steps.meta.outputs.tags }}
50+ labels : ${{ steps.meta.outputs.labels }}
3351 cache-from : type=gha
3452 cache-to : type=gha,mode=max
35-
36- build_docker_acr :
37- name : Build Docker ACR
38- runs-on : ubuntu-latest
39- steps :
40- - name : Checkout
41- uses : actions/checkout@v3
42- - name : Login to ACR
43- uses : aliyun/acr-login@v1
44- with :
45- login-server : https://${{ vars.REGISTRY_ADDRESS }}
46- username : " ${{ vars.REGISTRY_USERNAME }}"
47- password : " ${{ secrets.REGISTRY_PASSWORD }}"
48- - name : Build and push image
49- run : |
50- docker build -t ${{ vars.REGISTRY_ADDRESS }}/${{ vars.REGISTRY_NAMESPACE }}/${{ vars.IMAGE_NAME }}:${{ github.ref == 'refs/heads/main' && 'latest' || 'user' }} .
51- docker push ${{ vars.REGISTRY_ADDRESS }}/${{ vars.REGISTRY_NAMESPACE }}/${{ vars.IMAGE_NAME }}:${{ github.ref == 'refs/heads/main' && 'latest' || 'user' }}
52-
53- deploy :
54- name : Deploy
55- needs : [build_docker, build_docker_acr]
56- runs-on : ubuntu-latest
57- if : github.ref == 'refs/heads/main'
58- steps :
5953 - name : SSH To Host
60- uses : appleboy/ssh-action@v1.0.1
54+ uses : appleboy/ssh-action@v1
6155 with :
6256 host : ${{ secrets.SSH_HOST }}
6357 username : ${{ secrets.SSH_USER }}
6458 key : ${{ secrets.SSH_KEY }}
65- port : ${{ secrets.SSH_PORT }}
66- script : |
67- cd ${{ secrets.PROJECT_PATH }}
68- sudo bash ./deploy.sh
59+ script_path : ${{ secrets.PROJECT_PATH }}/deploy.sh
0 commit comments