4545
4646 - name : Sync workspace (rsync --delete)
4747 run : |
48- rsync -az --delete \
49- --exclude ".git" \
50- --exclude "node_modules" \
51- ./ prod:/opt/app-backup/
48+ rsync -az --delete --exclude ".git" --exclude "node_modules" ./ prod:/opt/app-backup/
5249
5350 - name : Write .env on EC2
5451 run : |
@@ -58,47 +55,17 @@ jobs:
5855
5956 - name : Install, Generate & Build on server
6057 run : |
61- ssh prod 'cd /opt/app-backup && \
62- pnpm install --frozen-lockfile && \
63- pnpm exec prisma generate && \
64- rm -rf dist && \
65- pnpm build'
58+ ssh prod 'cd /opt/app-backup && pnpm install --frozen-lockfile && pnpm exec prisma generate && rm -rf dist && pnpm build'
6659
6760 - name : Prisma migrate (only when schema changed)
6861 if : steps.paths-filter.outputs.prisma == 'true'
6962 run : |
7063 ssh prod 'cd /opt/app-backup && pnpm exec prisma migrate deploy'
7164
72- - name : Install/Update systemd service
65+ - name : Restart PM2 Application (promptplace-api)
7366 run : |
74- ssh prod 'cat > app.service << "UNIT"
75- [Unit]
76- Description=PromptPlace Backend
77- After=network.target
78-
79- [Service]
80- User=ubuntu
81- WorkingDirectory=/opt/app-backup
82- EnvironmentFile=/opt/app-backup/.env
83- Environment=NODE_ENV=production
84- Environment=PNPM_HOME=/home/ubuntu/.local/share/pnpm
85- Environment=PATH=/home/ubuntu/.local/share/pnpm:/usr/local/bin:/usr/bin:/bin
86- ExecStart=/bin/bash -lc '"'"'pnpm start'"'"'
87- Restart=always
88- RestartSec=3
89- # Optional: 확보/로그
90- StandardOutput=journal
91- StandardError=journal
92-
93- [Install]
94- WantedBy=multi-user.target
95- UNIT
96- sudo mv app.service /etc/systemd/system/app.service
97- sudo systemctl daemon-reload
98- sudo systemctl enable app
99- sudo systemctl restart app
100- '
67+ ssh prod 'pm2 restart promptplace-api'
10168
102- - name : Restart PM2 Application (promptplace-api )
103- run : |
104- ssh prod 'pm2 restart promptplace-api '
69+ - name : Stop PM2 app (one-time )
70+ run : |
71+ ssh prod 'pm2 delete promptplace || true '
0 commit comments