-
Notifications
You must be signed in to change notification settings - Fork 0
37 lines (29 loc) · 1.27 KB
/
deploy.yml
File metadata and controls
37 lines (29 loc) · 1.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
name: Deploy to Server
on:
push:
branches: [ main ]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Deploy via SSH
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
cd /home/ubuntu/
# 1. Git Pull erzwingen und Erfolg vortäuschen, egal was passiert
git pull origin main || echo "Git pull nicht notwendig oder fehlgeschlagen, mache trotzdem weiter..."
# 2. Bestehende App beenden (das '|| true' ist hier der Lebensretter!)
# Es verhindert, dass das Signal 143 den Workflow killt.
sudo pkill -f "python3 app.py" || true
# 3. Pufferzeit, damit der Port (z.B. 5000) wirklich frei wird
sleep 2
# 4. Der "Hintergrund-Start", der die Verbindung überlebt
# Wir leiten ALLES um (> /dev/null), damit SSH sofort fertig ist
nohup python3 app.py > app.log 2>&1 &
# 5. Den Prozess vom Terminal abkoppeln
disown
echo "Deployment-Skript beendet. App sollte im Hintergrund laufen."