66
77env :
88 BACKEND_IMAGE : ${{ secrets.DOCKERHUB_USERNAME }}/mern-chat-app-backend
9- FRONTEND_IMAGE : ${{ secrets.DOCKERHUB_USERNAME }}/mern-chat-app-frontend
9+ FRONTEND_STAGING_IMAGE : ${{ secrets.DOCKERHUB_USERNAME }}/mern-chat-app-frontend-staging
10+ FRONTEND_PROD_IMAGE : ${{ secrets.DOCKERHUB_USERNAME }}/mern-chat-app-frontend-prod
1011
1112jobs :
1213 build :
1314 runs-on : ubuntu-latest
1415 steps :
1516 - name : Checkout code
1617 uses : actions/checkout@v4
18+
1719 - name : Set up Docker Buildx
1820 uses : docker/setup-buildx-action@v3
21+
1922 - name : Log in to Docker Hub
2023 uses : docker/login-action@v3
2124 with :
2225 username : ${{ secrets.DOCKERHUB_USERNAME }}
2326 password : ${{ secrets.DOCKERHUB_TOKEN }}
27+
2428 - name : Build and push backend
2529 uses : docker/build-push-action@v5
2630 with :
@@ -29,12 +33,26 @@ jobs:
2933 tags : ${{ env.BACKEND_IMAGE }}:latest
3034 cache-from : type=gha
3135 cache-to : type=gha,mode=max
32- - name : Build and push frontend
36+
37+ - name : Build and push frontend (staging)
38+ uses : docker/build-push-action@v5
39+ with :
40+ context : ./Front-end
41+ push : true
42+ tags : ${{ env.FRONTEND_STAGING_IMAGE }}:latest
43+ build-args : |
44+ VITE_SERVER=${{ secrets.STG_VITE_SERVER }}
45+ cache-from : type=gha
46+ cache-to : type=gha,mode=max
47+
48+ - name : Build and push frontend (prod)
3349 uses : docker/build-push-action@v5
3450 with :
3551 context : ./Front-end
3652 push : true
37- tags : ${{ env.FRONTEND_IMAGE }}:latest
53+ tags : ${{ env.FRONTEND_PROD_IMAGE }}:latest
54+ build-args : |
55+ VITE_SERVER=${{ secrets.PROD_VITE_SERVER }}
3856 cache-from : type=gha
3957 cache-to : type=gha,mode=max
4058
5270 timeout : 60s
5371 script : |
5472 cd ~/MERN-CHAT-APP
55- docker- compose pull
73+ docker compose pull
5674 sleep 5
57- docker- compose up -d --remove-orphans
75+ docker compose up -d --remove-orphans
5876 docker image prune -f
5977 echo "Staging deployed"
6078
7290 timeout : 60s
7391 script : |
7492 cd ~/MERN-CHAT-APP
75- docker- compose pull
93+ docker compose pull
7694 sleep 5
77- docker- compose up -d --remove-orphans
95+ docker compose up -d --remove-orphans
7896 docker image prune -f
7997 echo "Production deployed"
0 commit comments