|
39 | 39 | # ---------------- PREPARE BACKEND DIRS ---------------- |
40 | 40 | - name: Prepare Backend Directories |
41 | 41 | run: | |
42 | | - ssh -i ~/.ssh/ec2.pem ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }} << EOF |
| 42 | + ssh -i ~/.ssh/ec2.pem ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }} << 'EOF' |
43 | 43 | mkdir -p ${{ secrets.APP_DIR }}/api-gateway/dist |
44 | 44 | mkdir -p ${{ secrets.APP_DIR }}/services/patient-service/dist |
45 | 45 | mkdir -p ${{ secrets.APP_DIR }}/services/staff-service/dist |
@@ -68,39 +68,48 @@ jobs: |
68 | 68 | ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }}:${{ secrets.APP_DIR }}/services/staff-service/dist/ |
69 | 69 |
|
70 | 70 | # ---------------- DEPLOY FRONTEND ---------------- |
71 | | - - name: Deploy Frontend (Standalone Clean) |
| 71 | + - name: Deploy Frontend (Next Standalone) |
72 | 72 | run: | |
73 | | - # Clean old frontend completely |
| 73 | +
|
| 74 | + # Clean previous frontend |
74 | 75 | ssh -i ~/.ssh/ec2.pem ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }} << EOF |
75 | 76 | rm -rf ${{ secrets.APP_DIR }}/frontend |
76 | 77 | mkdir -p ${{ secrets.APP_DIR }}/frontend |
77 | 78 | EOF |
78 | 79 |
|
79 | | - # 1️⃣ Copy standalone server bundle |
| 80 | + # Copy standalone bundle |
80 | 81 | rsync -avz \ |
81 | 82 | -e "ssh -i ~/.ssh/ec2.pem" \ |
82 | 83 | frontend/.next/standalone/ \ |
83 | 84 | ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }}:${{ secrets.APP_DIR }}/frontend/ |
84 | 85 |
|
85 | | - # 2️⃣ Copy static assets |
| 86 | + # Fix nested Next standalone structure |
| 87 | + ssh -i ~/.ssh/ec2.pem ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }} << EOF |
| 88 | + if [ -d "${{ secrets.APP_DIR }}/frontend/frontend" ]; then |
| 89 | + mv ${{ secrets.APP_DIR }}/frontend/frontend/* ${{ secrets.APP_DIR }}/frontend/ |
| 90 | + rm -rf ${{ secrets.APP_DIR }}/frontend/frontend |
| 91 | + fi |
| 92 | + EOF |
| 93 | +
|
| 94 | + # Copy Next static assets |
86 | 95 | rsync -avz \ |
87 | 96 | -e "ssh -i ~/.ssh/ec2.pem" \ |
88 | | - frontend/.next/static \ |
89 | | - ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }}:${{ secrets.APP_DIR }}/frontend/.next/ |
| 97 | + frontend/.next/static/ \ |
| 98 | + ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }}:${{ secrets.APP_DIR }}/frontend/.next/static/ |
90 | 99 |
|
91 | | - # 3️⃣ Copy public assets |
| 100 | + # Copy public assets |
92 | 101 | rsync -avz \ |
93 | 102 | -e "ssh -i ~/.ssh/ec2.pem" \ |
94 | | - frontend/public \ |
95 | | - ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }}:${{ secrets.APP_DIR }}/frontend/ |
| 103 | + frontend/public/ \ |
| 104 | + ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }}:${{ secrets.APP_DIR }}/frontend/public/ |
96 | 105 |
|
97 | 106 | # ---------------- RESTART SERVICES ---------------- |
98 | 107 | - name: Restart Services |
99 | 108 | run: | |
100 | | - ssh -i ~/.ssh/ec2.pem ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }} << EOF |
101 | | - # Load NVM so pm2 is available |
102 | | - export NVM_DIR="\$HOME/.nvm" |
103 | | - [ -s "\$NVM_DIR/nvm.sh" ] && \. "\$NVM_DIR/nvm.sh" |
| 109 | + ssh -i ~/.ssh/ec2.pem ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }} << 'EOF' |
| 110 | +
|
| 111 | + export NVM_DIR="$HOME/.nvm" |
| 112 | + [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" |
104 | 113 |
|
105 | 114 | cd ${{ secrets.APP_DIR }} |
106 | 115 |
|
|
0 commit comments