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:
mainrelease-*
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:
STARTFILESRESULTSUMMARY
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
- Branch erstellen (
feature/*,improvement/*,fix/*,)hotfix/correction/* - Merge Request öffnen (frühzeitig)
- Pipeline läuft automatisch
- Fehler beheben bis Pipeline grün ist
- Code Review + QA
- 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