Skip to main content

CI/CD Pipeline – Übersicht

⚠️ Revision 12

Ziel

Diese Pipeline dient als automatischer Merge-Gate für das CE-Repository: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. 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)
  • Format-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 Unit-Tests.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

Workflow

    1.

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

Nicht Bestandteil (Revision 1)2)

Diese Themen sind aktuell nicht enthalten: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 ?