Files
michaelschiemer/deployment/docs/guides/pipeline-test-steps.md
Michael Schiemer 36ef2a1e2c
Some checks failed
🚀 Build & Deploy Image / Determine Build Necessity (push) Failing after 10m14s
🚀 Build & Deploy Image / Build Runtime Base Image (push) Has been skipped
🚀 Build & Deploy Image / Build Docker Image (push) Has been skipped
🚀 Build & Deploy Image / Run Tests & Quality Checks (push) Has been skipped
🚀 Build & Deploy Image / Auto-deploy to Staging (push) Has been skipped
🚀 Build & Deploy Image / Auto-deploy to Production (push) Has been skipped
Security Vulnerability Scan / Check for Dependency Changes (push) Failing after 11m25s
Security Vulnerability Scan / Composer Security Audit (push) Has been cancelled
fix: Gitea Traefik routing and connection pool optimization
- Remove middleware reference from Gitea Traefik labels (caused routing issues)
- Optimize Gitea connection pool settings (MAX_IDLE_CONNS=30, authentication_timeout=180s)
- Add explicit service reference in Traefik labels
- Fix intermittent 504 timeouts by improving PostgreSQL connection handling

Fixes Gitea unreachability via git.michaelschiemer.de
2025-11-09 14:46:15 +01:00

4.5 KiB

CI/CD Pipeline Test - Schritt-für-Schritt Anleitung

Stand: 2025-11-07
Status: Gemeinsame Test-Anleitung


Vorbereitung

Schritt 1: Aktuellen Status prüfen

# Im Repository-Root
cd ~/dev/michaelschiemer  # oder dein Repository-Pfad

# Aktuellen Branch prüfen
git branch --show-current

# Status prüfen
git status

Erwartet:

  • Branch: staging oder main (je nachdem was du testen willst)
  • Keine uncommitted Changes (oder committen vorher)

Schritt 2: Secrets in Gitea prüfen

Öffne im Browser:

https://git.michaelschiemer.de/michael/michaelschiemer/settings/secrets/actions

Prüfe ob folgende Secrets vorhanden sind:

  • REGISTRY_USER
  • REGISTRY_PASSWORD
  • SSH_PRIVATE_KEY
  • ANSIBLE_VAULT_PASSWORD

Falls ANSIBLE_VAULT_PASSWORD fehlt:

  • Erstelle Secret mit dem Vault-Passwort aus deployment/ansible/secrets/.vault_pass

Schritt 3: Gitea Runner Status prüfen

Im Browser:

https://git.michaelschiemer.de/admin/actions/runners

Erwartet:

  • Runner sollte als "Idle" oder "Active" angezeigt werden

Oder lokal prüfen:

cd deployment/gitea-runner
docker compose ps

Erwartet:

  • gitea-runner: Up
  • gitea-runner-dind: Up

Staging Pipeline Test

Schritt 1: Auf staging Branch wechseln

cd ~/dev/michaelschiemer  # oder dein Repository-Pfad
git checkout staging
git pull origin staging

Schritt 2: Test-Commit erstellen

# Kleine Änderung
echo "# Test CI/CD Pipeline - $(date)" >> README.md

# Committen
git add README.md
git commit -m "test: CI/CD pipeline test"

# Pushen (triggert automatisch Pipeline)
git push origin staging

Schritt 3: Pipeline beobachten

Öffne im Browser:

https://git.michaelschiemer.de/michael/michaelschiemer/actions

Erwartete Jobs:

  1. changes - Prüft ob Build notwendig ist
  2. test - Führt Tests aus (falls changes = true)
  3. build - Baut Docker Image (falls changes = true)
  4. deploy-staging - Deploy zu Staging (automatisch bei staging Branch)

Beobachte jeden Job:

  • Klicke auf den Job
  • Prüfe die Logs
  • Notiere Fehler falls welche auftreten

Schritt 4: Verifikation auf Server

Nach erfolgreichem Pipeline-Lauf:

# SSH zum Server
ssh deploy@94.16.110.151

# Code-Deployment prüfen
cd /home/deploy/michaelschiemer/current
git log -1  # Sollte Test-Commit zeigen

# Composer Dependencies prüfen
docker compose -f ~/deployment/stacks/production/docker-compose.base.yml \
  -f ~/deployment/stacks/production/docker-compose.production.yml \
  exec php test -f /var/www/html/vendor/autoload.php && echo "EXISTS" || echo "MISSING"

# Container Status prüfen
docker compose -f ~/deployment/stacks/production/docker-compose.base.yml \
  -f ~/deployment/stacks/production/docker-compose.production.yml ps

# Health-Check
curl -f https://staging.michaelschiemer.de/health

Production Pipeline Test

Wichtig: Nur nach erfolgreichem Staging-Test!

Schritt 1: Auf main Branch wechseln

cd ~/dev/michaelschiemer
git checkout main
git pull origin main

Schritt 2: Test-Commit erstellen

# Kleine Änderung
echo "# Test CI/CD Pipeline Production - $(date)" >> README.md

# Committen
git add README.md
git commit -m "test: CI/CD pipeline production test"

# Pushen (triggert automatisch Pipeline)
git push origin main

Schritt 3: Pipeline beobachten

Gleiche Schritte wie Staging:

  • Pipeline in Gitea Actions UI beobachten
  • Jobs prüfen
  • Logs analysieren

Schritt 4: Verifikation auf Server

Gleiche Checks wie Staging, aber Production URL:

curl -f https://michaelschiemer.de/health

Fehlerbehebung

Problem: Pipeline startet nicht

Prüfe:

  1. Runner läuft: docker compose ps in deployment/gitea-runner
  2. Runner in Gitea UI sichtbar
  3. Workflow-Datei korrekt

Problem: Code-Deployment schlägt fehl

Prüfe:

  1. deploy-application-code.yml Logs in Gitea Actions
  2. Git Repository existiert auf Server
  3. Branch-Name korrekt

Problem: Image-Deployment schlägt fehl

Prüfe:

  1. Registry Login erfolgreich
  2. Image existiert in Registry
  3. deploy-image.yml Logs

Problem: Health-Check schlägt fehl

Prüfe:

  1. Container Status: docker compose ps
  2. Container Logs: docker compose logs
  3. Health-Check Endpoint: curl https://michaelschiemer.de/health

Nächste Schritte

Nach erfolgreichem Test:

  1. Fehler dokumentieren (falls welche aufgetreten sind)
  2. CI/CD Status aktualisieren
  3. Production-Deployment für echte Features verwenden