11name : Deploy
22
3+ concurrency : Vostro
4+
35run-name : Deploy ${{github.sha}}
46
57on :
@@ -20,44 +22,27 @@ jobs:
2022 env :
2123 DOCKER_TOKEN : ${{secrets.DOCKER_TOKEN}}
2224 - name : Build container
23- run : docker build -t coder80/usmile:latest .
24- - name : Push to Docker Hub
25+ run : docker build -t coder80/usmile:latest -t coder80/usmile:$SHA .
26+ env :
27+ SHA : ${{ github.sha }}
28+ - name : Push latest tag to Docker Hub
2529 run : docker push coder80/usmile:latest
30+ - name : Push commit sha tag to Docker Hub
31+ run : docker push coder80/usmile:$SHA
32+ env :
33+ SHA : ${{ github.sha }}
2634
2735 deploy :
2836 needs : build
2937 runs-on : ubuntu-latest
38+ environment : Vostro
3039 steps :
31- - name : Create SSH key
32- run : |
33- mkdir -p ~/.ssh
34- echo "$SSH_PRIVATE_KEY" > ~/.ssh/key
35- sudo chmod 600 ~/.ssh/key
36- ssh-keyscan -p $SSH_PORT -H $SSH_HOST > ~/.ssh/known_hosts
37- env :
38- SSH_PRIVATE_KEY : ${{secrets.SSH_PRIVATE_KEY}}
39- SSH_HOST : ${{secrets.SSH_HOST}}
40- SSH_PORT : ${{secrets.SSH_PORT}}
41-
4240 - name : Check out repository code
4341 uses : actions/checkout@v4
4442
45- - name : Upload compose file
46- run : |
47- rsync -e "ssh -p $SSH_PORT -i ~/.ssh/key" compose.yml $SSH_USER@$SSH_HOST:/home/$SSH_USER/projects/usmile/compose.yml
48- env :
49- SSH_HOST : ${{secrets.SSH_HOST}}
50- SSH_USER : ${{secrets.SSH_USER}}
51- SSH_PORT : ${{secrets.SSH_PORT}}
52-
53- - name : Connnect and deploy
54- run : |
55- ssh -i ~/.ssh/key -p $SSH_PORT $SSH_USER@$SSH_HOST "
56- cd /home/$SSH_USER/projects/usmile
57- docker compose --profile prod pull
58- docker compose --profile prod up -d
59- docker system prune -f"
43+ - name : Deploy
44+ uses : actions-hub/kubectl@master
6045 env :
61- SSH_HOST : ${{secrets.SSH_HOST }}
62- SSH_USER : ${{secrets.SSH_USER}}
63- SSH_PORT : ${{secrets.SSH_PORT }}
46+ KUBE_CONFIG : ${{ secrets.KUBE_CONFIG }}
47+ with :
48+ args : --namespace=usmile set image deployments/main main=coder80/usmile: ${{ github.SHA }}
0 commit comments