Vorgehensweise bezüglich Git und Branches
Unsere Vorgehensweise lehnt sich an das bekannte Git-Flow-Modell an.

Folgende Branches sind dabei von Bedeutung:
Master-Branch
- Dieser erstetzt bei uns die release-Branches und den Master-Branch aus dem Git-Flow-Modell.
- Triggert zunächst den
PlusServices_Basic_Build_and_TestTask auf dem Jenkins-CI-Server (Build auf dem Jenkins-Server und Ausführung aller automatischen Tests) - Nachfolgend werden alle Staging-Systeme basierend auf Master gebaut und deployed.
- Auf den Staging-Systemen wird ein anstehendes Release konkret mit einer geclonten Datenbank des aktuellen Live-Systems getestet.
- Nach erfolgreichen Tests werden die Live-Systeme über eigene Jenkins-
Tasks manuell aus dem master-Branch gebaut und deployed.
(Jenkins-Task:
_Deploy_all_LIVE-Systems_)
Develop-Branch
- Verwendung wie im Git-Flow-Modell beschrieben. Dient zur Integration der einzelnen Feature-Branches während der Entwicklung.
- Ein Merge in den Develop-Branch triggert automatisch einen Task, der das System aus dem Branch baut, die automatischen Tests ausführt und bei Erfolg auf das Testsystem develop.plusservices.de deployed.
Feature-Branches
- Während der Entwicklung werden - üblicherweise pro Task aus dem JIRA-System - einzelne Feature-Branches erstellt. Diese werden per Pull-Request zunächst in den develop-Branch gemerged.
Hotfix-Branches
- Wenn für den laufenden Betrieb dringende Bugfixes benötigt werden, werden diese in Hotfix-Branches umgesetzt welche dann nach master gemerged werden und anschließend deployed werden können. (Vgl. auch git-flow)
Achtung
Nachdem Hotfixes in den master Branch gemerged wurden, müssen diese ebenfalls in den development-Branch gemerged werden.