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:
mainrelease-*
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:
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/*,``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
1.
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
?