ci: setup CI/CD pipeline with Gitea Actions and secrets configuration
This commit is contained in:
119
.gitea/workflows/NEXT_STEPS.md
Normal file
119
.gitea/workflows/NEXT_STEPS.md
Normal file
@@ -0,0 +1,119 @@
|
||||
# ✅ Secrets erfolgreich gesetzt!
|
||||
|
||||
## Status
|
||||
|
||||
✅ Repository erstellt
|
||||
✅ Secrets konfiguriert:
|
||||
- REGISTRY_USER
|
||||
- REGISTRY_PASSWORD
|
||||
- SSH_PRIVATE_KEY
|
||||
|
||||
## 🚀 Nächster Schritt: CI/CD Workflow testen
|
||||
|
||||
### Option 1: Workflow manuell triggern (Empfohlen)
|
||||
|
||||
1. **Gehe zu Actions:**
|
||||
```
|
||||
https://git.michaelschiemer.de/michael/michaelschiemer/actions
|
||||
```
|
||||
|
||||
2. **Workflow auswählen:**
|
||||
- Suche nach "Production Deployment Pipeline"
|
||||
- Klicke auf den Workflow
|
||||
|
||||
3. **Workflow starten:**
|
||||
- Klicke "Run workflow" (rechts oben)
|
||||
- Branch: `main`
|
||||
- `skip_tests`: deaktiviert (Tests sollen laufen)
|
||||
- Klicke "Run workflow"
|
||||
|
||||
4. **Logs beobachten:**
|
||||
- Prüfe jeden Schritt in den Logs
|
||||
- Er_warte ~8-15 Minuten für komplette Ausführung
|
||||
|
||||
### Option 2: Automatisches Deployment via Commit
|
||||
|
||||
```bash
|
||||
# Stelle sicher, dass alles committed ist
|
||||
git add .
|
||||
git commit -m "chore: CI/CD pipeline setup complete"
|
||||
|
||||
# Push zu main - startet automatisch den Workflow
|
||||
git push origin main
|
||||
```
|
||||
|
||||
## 📊 Workflow-Schritte
|
||||
|
||||
Der Workflow führt folgende Schritte aus:
|
||||
|
||||
1. **Tests** (~2-5 Min)
|
||||
- PHP Setup
|
||||
- Composer Dependencies
|
||||
- Tests ausführen
|
||||
|
||||
2. **Build** (~3-5 Min)
|
||||
- Multi-Stage Docker Build
|
||||
- Composer Dependencies (Production)
|
||||
- Frontend Build (npm)
|
||||
- Final Production Image
|
||||
|
||||
3. **Push** (~1-2 Min)
|
||||
- Docker Login zur Registry
|
||||
- Image Tag generieren
|
||||
- Image zur Registry pushen
|
||||
|
||||
4. **Deploy** (~2-4 Min)
|
||||
- Ansible Playbook ausführen
|
||||
- Image auf Production pullen
|
||||
- Application Stack aktualisieren
|
||||
- Services neu starten
|
||||
|
||||
**Gesamtzeit: ~8-15 Minuten**
|
||||
|
||||
## ✅ Erfolgreiche Ausführung erkennen
|
||||
|
||||
Der Workflow ist erfolgreich, wenn:
|
||||
|
||||
- ✅ Alle Jobs grün sind
|
||||
- ✅ Keine Fehler in den Logs
|
||||
- ✅ "Deploy via Ansible" erfolgreich
|
||||
- ✅ Application läuft auf Production-Server
|
||||
|
||||
## 🔍 Verifizierung nach Deployment
|
||||
|
||||
```bash
|
||||
# Prüfe Application-Status
|
||||
ssh deploy@94.16.110.151 "cd ~/deployment/stacks/application && docker compose ps"
|
||||
|
||||
# Prüfe Logs
|
||||
ssh deploy@94.16.110.151 "cd ~/deployment/stacks/application && docker compose logs --tail=50"
|
||||
|
||||
# Prüfe Health Endpoint
|
||||
curl -k https://michaelschiemer.de/health
|
||||
```
|
||||
|
||||
## 🐛 Troubleshooting
|
||||
|
||||
### Workflow startet nicht
|
||||
- Prüfe, ob `.gitea/workflows/production-deploy.yml` im Repository ist
|
||||
- Prüfe Workflow-Syntax
|
||||
|
||||
### "Secret not found" Fehler
|
||||
- Prüfe Secrets-Seite: `https://git.michaelschiemer.de/michael/michaelschiemer/settings/secrets/actions`
|
||||
- Prüfe, ob Namen exakt übereinstimmen (Groß-/Kleinschreibung!)
|
||||
|
||||
### Registry Login fehlgeschlagen
|
||||
- Prüfe `REGISTRY_USER` und `REGISTRY_PASSWORD` Secrets
|
||||
- Teste Registry: `curl -u admin:registry-secure-password-2025 http://127.0.0.1:5000/v2/_catalog`
|
||||
|
||||
### Deployment fehlgeschlagen
|
||||
- Prüfe `SSH_PRIVATE_KEY` Secret
|
||||
- Prüfe Ansible-Verbindung: `ssh deploy@94.16.110.151 "echo OK"`
|
||||
- Prüfe Server-Logs
|
||||
|
||||
## 🎉 Nach erfolgreichem Test
|
||||
|
||||
Du kannst jetzt:
|
||||
- ✅ Commits pushen → Automatisches Deployment
|
||||
- ✅ Workflow manuell triggern für kontrollierte Deployments
|
||||
- ✅ Branch-Protection aktivieren für sichere Deployments
|
||||
Reference in New Issue
Block a user