# Deploy – Commit, Test und Push

Führt Tests durch, bumpt die Version, committet und pusht auf develop.
Gitea startet dann automatisch den Dev-Deploy.

## Schritt 1: Syntax prüfen
```bash
python3 -m py_compile backend/main.py backend/routers/*.py 2>&1 && echo "Syntax OK"
```

## Schritt 2: Versions-Bump prüfen
Prüfe ob version.py und version.js aktualisiert wurden:
```bash
git diff --name-only | grep -E "version\.(py|js)"
```

Wenn NICHT aktualisiert → Stopp und fragen:
"Welche Version soll ich setzen? (aktuell: X.Y.Z)"
Dann version.py und version.js aktualisieren.

## Schritt 3: Smoke Tests auf Dev ausführen
```bash
npx playwright test 2>&1
```

Wenn Tests fehlschlagen:
- Screenshot analysieren: `start test-results\...\test-failed-1.png`
- Fehler korrigieren
- Tests erneut ausführen
- Erst wenn alle grün → weiter

## Schritt 4: Git Status prüfen
```bash
git status
git diff --stat
```

## Schritt 5: Commit
```bash
git add -A
git commit -m "COMMIT_MESSAGE

version: X.Y.Z
module:  MODUL_NAME X.Y.Z"
```

## Schritt 6: Push auf develop
```bash
git push origin develop
```

## Schritt 7: Deploy-Status prüfen
```bash
# 30 Sekunden warten
# Dann Dev-System prüfen
ssh pi "docker logs dev-mitai-api --tail 10"
curl -sf https://dev.mitai.jinkendo.de/api/version | python3 -c "import sys,json; d=json.load(sys.stdin); print('Version:', d.get('app_version'))"
```

## Schritt 8: Gitea PR Link ausgeben
```bash
echo "PR erstellen: http://192.168.2.144:3000/Lars/mitai-jinkendo/compare/main...develop"
```

---

## Checkliste vor jedem Commit

```
[ ] backend/version.py aktualisiert (APP_VERSION + MODULE_VERSION)
[ ] frontend/src/version.js aktualisiert (APP_VERSION + PAGE_VERSION)
[ ] Changelog-Eintrag in version.py hinzugefügt
[ ] DB_SCHEMA_VERSION aktualisiert (wenn Schema geändert)
[ ] Alle Playwright Tests grün
[ ] Auth auf alle neuen Endpoints
[ ] api.js für alle neuen Frontend API-Calls
```

---

## Prod bleibt unberührt

Prod-Änderungen NUR über:
Gitea PR → Review → Merge → deploy-prod.yml
NIEMALS direkt auf Prod deployen.
