Vorgehensweise bezüglich Git und Branches

Unsere Vorgehensweise lehnt sich an das bekannte Git-Flow-Modell an.

Git-Flow-Modell

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_Test Task 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.