@@ -21,34 +21,31 @@ jobs:
2121 node-version : 20
2222 cache : " pnpm"
2323
24+ # ---------------- INSTALL + BUILD ----------------
2425 - name : Install dependencies
2526 run : pnpm install --frozen-lockfile
2627
2728 - name : Build workspace
2829 run : pnpm -r run build
2930
31+ # ---------------- SSH SETUP ----------------
3032 - name : Setup SSH
3133 run : |
3234 mkdir -p ~/.ssh
3335 echo "${{ secrets.EC2_SSH_KEY }}" > ~/.ssh/ec2.pem
3436 chmod 600 ~/.ssh/ec2.pem
3537 ssh-keyscan -H ${{ secrets.EC2_HOST }} >> ~/.ssh/known_hosts
3638
37- # ---------------- PREPARE EC2 STRUCTURE ----------------
38- - name : Prepare EC2 Directories
39+ # ---------------- PREPARE BACKEND DIRS ----------------
40+ - name : Prepare Backend Directories
3941 run : |
4042 ssh -i ~/.ssh/ec2.pem ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }} << EOF
4143 mkdir -p ${{ secrets.APP_DIR }}/api-gateway/dist
4244 mkdir -p ${{ secrets.APP_DIR }}/services/patient-service/dist
4345 mkdir -p ${{ secrets.APP_DIR }}/services/staff-service/dist
44-
45- mkdir -p ${{ secrets.APP_DIR }}/frontend
46- mkdir -p ${{ secrets.APP_DIR }}/frontend/.next
47- mkdir -p ${{ secrets.APP_DIR }}/frontend/.next/static
48- mkdir -p ${{ secrets.APP_DIR }}/frontend/public
4946 EOF
5047
51- # ---------------- BACKEND DEPLOY ----------------
48+ # ---------------- DEPLOY BACKEND ----------------
5249 - name : Deploy API Gateway
5350 run : |
5451 rsync -avz --delete \
@@ -70,26 +67,32 @@ jobs:
7067 services/staff-service/dist/ \
7168 ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }}:${{ secrets.APP_DIR }}/services/staff-service/dist/
7269
73- # ---------------- FRONTEND DEPLOY ----------------
74- - name : Deploy Frontend Standalone
70+ # ---------------- DEPLOY FRONTEND ----------------
71+ - name : Deploy Frontend ( Standalone Clean)
7572 run : |
76- # Standalone server bundle
77- rsync -avz --delete \
73+ # Clean old frontend completely
74+ ssh -i ~/.ssh/ec2.pem ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }} << EOF
75+ rm -rf ${{ secrets.APP_DIR }}/frontend
76+ mkdir -p ${{ secrets.APP_DIR }}/frontend
77+ EOF
78+
79+ # 1️⃣ Copy standalone server bundle
80+ rsync -avz \
7881 -e "ssh -i ~/.ssh/ec2.pem" \
7982 frontend/.next/standalone/ \
8083 ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }}:${{ secrets.APP_DIR }}/frontend/
8184
82- # Static assets
83- rsync -avz --delete \
85+ # 2️⃣ Copy static assets
86+ rsync -avz \
8487 -e "ssh -i ~/.ssh/ec2.pem" \
85- frontend/.next/static/ \
86- ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }}:${{ secrets.APP_DIR }}/frontend/.next/static/
88+ frontend/.next/static \
89+ ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }}:${{ secrets.APP_DIR }}/frontend/.next/
8790
88- # Public assets
89- rsync -avz --delete \
91+ # 3️⃣ Copy public assets
92+ rsync -avz \
9093 -e "ssh -i ~/.ssh/ec2.pem" \
91- frontend/public/ \
92- ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }}:${{ secrets.APP_DIR }}/frontend/public/
94+ frontend/public \
95+ ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }}:${{ secrets.APP_DIR }}/frontend/
9396
9497 # ---------------- RESTART SERVICES ----------------
9598 - name : Restart Services
0 commit comments