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 Branch erstellen ( feature/* , improvement /* , 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