Skip to main content

CI/CD Pipeline – Übersicht

⚠️ Revision 2

Ziel

Diese Pipeline dient als automatischer Merge-Gate für das CE-Repository.
Sie stellt sicher, dass Änderungen vor dem Merge:

  • syntaktisch korrekt sind
  • konsistent formatiert sind
  • grundlegende Qualitätsanforderungen erfüllen
  • funktional getestet wurden

Zusätzlich reduziert sie Merge-Konflikte durch frühzeitige, kontinuierliche Integration.

Scope

Diese Version gilt für:

  • CE-Repository
  • Merge Requests auf:
    • main
    • release-*

Die Pipeline läuft als Merged Results Pipeline.
Sie testet den Code so, wie er nach dem Merge aussehen würde.

Pipeline-Struktur

Die Pipeline besteht aus zwei Stages:

1. Validate

Schnelle Prüfungen:

  • Syntax-Check (perl -c)
  • Whitespace-Check (Tabs, Trailing Spaces)
  • Linting (perlcritic)

Besonderheit:

  • Diese Jobs laufen nur für geänderte Perl-Dateien (.pl, .pm)
  • Wenn keine relevanten Dateien geändert wurden, werden die Jobs bewusst übersprungen

Ziel: frühes, automatisiertes Feedback bei grundlegenden Problemen

2. Testing

Automatisierte Tests über t/test.pl mit PostgreSQL-Service.

Ziel: funktionale Korrektheit automatisch sicherstellen

Technische Details

  • Gemeinsames Docker-Image für alle Jobs
  • Lint-Abhängigkeiten (z. B. perlcritic) sind im Image enthalten
  • Keine Paketinstallation mehr zur Laufzeit der Jobs
  • Klare und einheitliche Job-Ausgaben mit:
    • START
    • FILES
    • RESULT
    • SUMMARY

Merge-Regeln

Ein Merge Request darf nur gemerged werden, wenn:

  • keine Merge-Konflikte vorliegen
  • die Pipeline erfolgreich ist
  • ein Code-Review erfolgt ist
  • Testing-Freigabe vorliegt

Workflow

  1. Branch erstellen (feature/*, improvement/*, fix/*, hotfix/*)
  2. Merge Request öffnen (frühzeitig)
  3. Pipeline läuft automatisch
  4. Fehler beheben bis Pipeline grün ist
  5. Code Review + QA
  6. Merge

Nicht Bestandteil (Revision 2)

Diese Themen sind aktuell nicht enthalten:

  • Review Apps
  • Deployments
  • Build- oder Packaging-Stages
  • Push-Pipelines
  • EE-Integration

Zielwerte

  • Pipeline-Laufzeit: ideal < 10 Minuten
  • Fokus: schnell, stabil, verständlich

Ausblick

Mögliche Erweiterungen in späteren Revisionen:

  • Release-Pipelines
  • Review Apps
  • Staging-Deployments
  • Integration mit EE-Repository