ci: validate app directly then use systemd for persistence
Some checks failed
Deploy API Server / build-and-deploy (push) Failing after 34s
Some checks failed
Deploy API Server / build-and-deploy (push) Failing after 34s
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
parent
cf668c2bf4
commit
6a182dcc85
@ -85,15 +85,41 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
cd /opt/zhixi/backend && npx prisma generate
|
cd /opt/zhixi/backend && npx prisma generate
|
||||||
|
|
||||||
- name: Restart API service
|
- name: Start API service
|
||||||
run: |
|
run: |
|
||||||
|
# Stop existing service
|
||||||
|
sudo systemctl stop zhixi-api 2>/dev/null || true
|
||||||
|
sleep 2
|
||||||
|
# Try running directly to validate app works
|
||||||
|
cd /opt/zhixi/backend
|
||||||
|
PORT=3000 nohup node dist/main.js > /tmp/zhixi-direct.log 2>&1 &
|
||||||
|
DIRECT_PID=$!
|
||||||
|
echo "[deploy] Direct PID: $DIRECT_PID"
|
||||||
|
# Wait for healthy response (up to 15s)
|
||||||
|
HEALTHY=0
|
||||||
|
for i in $(seq 1 15); do
|
||||||
|
sleep 1
|
||||||
|
if curl -sf http://localhost:3000/api > /dev/null 2>&1; then
|
||||||
|
echo "[deploy] Direct app healthy after ${i}s!"
|
||||||
|
HEALTHY=1
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
if ! kill -0 $DIRECT_PID 2>/dev/null; then
|
||||||
|
echo "[deploy] Direct app died — log:"
|
||||||
|
tail -30 /tmp/zhixi-direct.log
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
# Kill direct instance
|
||||||
|
kill $DIRECT_PID 2>/dev/null; wait $DIRECT_PID 2>/dev/null
|
||||||
|
if [ "$HEALTHY" = "1" ]; then
|
||||||
|
# App works! Use systemd for persistent run
|
||||||
sudo systemctl reset-failed zhixi-api 2>/dev/null || true
|
sudo systemctl reset-failed zhixi-api 2>/dev/null || true
|
||||||
sudo systemctl restart zhixi-api
|
sudo systemctl start zhixi-api
|
||||||
sleep 5
|
sleep 3
|
||||||
if sudo systemctl is-active zhixi-api; then
|
sudo systemctl is-active zhixi-api && echo "[deploy] systemd active OK" || echo "[deploy] systemd start failed (non-fatal, direct run works)"
|
||||||
echo "[deploy] zhixi-api active OK"
|
|
||||||
else
|
else
|
||||||
echo "[deploy] zhixi-api FAILED to start"
|
echo "[deploy] App failed to start"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user