3.5 KiB
3.5 KiB
CI/CD Workflow Testen
✅ Secrets sind konfiguriert - Perfekt!
Option 1: Workflow manuell triggern (Empfohlen)
Schritt 1: Gehe zu Actions
Öffne im Browser:
https://git.michaelschiemer.de/michael/michaelschiemer renewal/actions
Schritt 2: Workflow auswählen
- Suche nach "Production Deployment Pipeline"
- Klicke auf den Workflow
Schritt 3: Workflow manuell starten
- Klicke auf "Run workflow" (rechts oben)
- Wähle Branch:
main - Optional:
skip_testsdeaktiviert lassen (Tests sollen laufen) - Klicke "Run workflow"
Schritt 4: Logs beobachten
Der Workflow führt folgende Schritte aus:
- Checkout code - Code wird ausgecheckt
- Run Tests - PHP Tests werden ausgeführt
- Build Docker Image - Docker Image wird gebaut
- Push to Registry - Image wird zur Registry gepusht
- Deploy via Ansible - Deployment auf Production-Server
Beobachte die Logs und prüfe jeden Schritt!
Option 2: Automatisches Deployment via Commit
Test-Commit pushen
# Stelle sicher, dass alles committed ist
git add .
git commit -m "test: CI/CD workflow test" || echo "Keine Änderungen"
# Push zu main Branch
git push origin main
Der Workflow startet automatisch nach dem Push.
Was passiert beim Workflow?
1. Tests (ca. 2-5 Minuten)
- PHP Version Setup
- Composer Dependencies installieren
- Tests ausführen
2. Build (ca. 3-5 Minuten)
Live - Multi-Stage Docker Build:
- Composer Dependencies (Production)
- Frontend Build (npm)
- Finales Production Image
3. Push (ca. 1-2 Minuten)
- Docker Login zur Registry
- Image Tag generieren (SHA + Timestamp)
- Image zur Registry pushen
4. Deploy (ca. 2-4 Minuten)
- Ansible Playbook ausführen
- Image auf Production-Server pullen
- Application Stack aktualisieren
- Services neu starten
Gesamtzeit: ~8-15 Minuten
Workflow-Status prüfen
In Gitea UI:
https://git.michaelschiemer.de/michael/michaelschiemer/actions
Via Command Line:
# Prüfe ob Workflow läuft
curl -s -H "Authorization: token <DEIN_TOKEN>" \
"https://git.michaelschiemer.de/api/v1/repos/michael/michaelschiemer/actions/runs" | \
jq '.workflow_runs[0] | {status, conclusion, created_at}'
Erfolgreiche Ausführung erkennen
Der Workflow ist erfolgreich, wenn:
✅ Alle Jobs grün sind ✅ Keine Fehler in den Logs ✅ Letzter Schritt "Deploy via Ansible" erfolgreich ✅ Application läuft auf Production-Server
Troubleshooting
Workflow startet nicht
- Prüfe, ob
.gitea/workflows/production-deploy.ymlim Repository ist - Prüfe, ob Workflow-Syntax korrekt ist
- Prüfe Gitea Actions ist aktiviert
"Secret not found" Fehler
- Prüfe, ob alle drei Secrets gesetzt sind
- Prüfe, ob Namen exakt übereinstimmen (Groß-/Kleinschreibung!)
Registry Login fehlgeschlagen
- Prüfe
REGISTRY_USERundREGISTRY_PASSWORDSecrets - Prüfe Registry erreichbar:
curl -u admin:registry-secure-password-2025 http://127.0.0.1:5000/v2/_catalog
Deployment fehlgeschlagen
- Prüfe
SSH_PRIVATE_KEYSecret - Prüfe Ansible-Verbindung zum Server
- Prüfe Server-Logs:
ssh deploy@94.16.110.151 "docker compose -f ~/deployment/stacks/application/docker-compose.yml logs"
Nächste Schritte nach erfolgreichem Test
- ✅ Workflow funktioniert
- ✅ Automatisches Deployment getestet
- ✅ Production-Stack läuft
Du kannst jetzt:
- Normale Commits pushen → Automatisches Deployment
- Workflow manuell triggern für kontrollierte Deployments
- Branch-Protection aktivieren für sichere Deployments