Branch-basierte Deployments mit Bamboo 5.2

Confluence_54_JIRA_SichtbarkeitDas Bamboo-Team arbeitet in letzter Zeit verstärkt daran, die Deployment-Fähigkeiten von Atlassians Continuous-Integration-Server weiter zu verbessern. Mit dem kürzlich ausgelieferten Bamboo 5.2 ist ein weiterer großer Schritt gemacht: Branch-basierte Deployments bieten Entwicklungsteams noch mehr Flexibilität.

Von Branches aus deployen

Jedes Team hat seine eigenen Workflows in Sachen Branching. Und Bamboos Branch-Deployments sind sehr flexibel im Hinblick auf die Anwendungsfälle, die sie abdecken, und die Mechanismen, von denen sie ausgelöst werden. Solche zentralen Use Cases sind zum Beispiel diese:

  • Einen Entwicklungs-Branch zum Testen in eine Low-Level-Umgebung deployen
  • Ein Release-Branch-Modell nutzen, statt von Master (oder Trunk) zu releasen
  • Von langlebigen Branches deployen, die die unterstützten Versionen eines Produkts enthalten

Deploys automatisch von Feature-Branches triggern

Entwicklungs-Branches für User Stories und Bugfixes sind ein guter Weg, um Änderungen in die Repository zu pushen, ohne den Rest des Teams mit kaputten Builds und fehlgeschlagenen Tests zu belasten.

Die meisten Teams, die Feature-Branches nutzen, liefern von diesen aus keine Features aus, sondern deployen diesen Code für explorative und Performance-Tests in interne Umgebungen. Mit den Branch-Deploys in Bamboo lässt sich der Deployment-Trigger für jede Umgebung so konfigurieren, dass die Artefakte, die in einem bestimmten Branch gebaut werden, automatisch deployt werden – entweder zu geplanten Intervallen oder mit jedem erfolgreichen CI-Build dieses Branchs.

Trigger lassen sich sogar in Zweierkombination nutzen. Ein Team arbeitet beispielsweise mit einer geteilten Umgebung, die für Performance-Tests vorgesehen ist. Hierhin werden ständig Master deployt, wann immer es zu erfolgreichen Builds kommt.

Für die Nacht, wenn die Repository ruht, können nun Deploys von den Branches aller Entwickler geplant werden, sodass jeder ein Performance-Feedback für seine Arbeit mindestens ein Mal am Tag erhält. (Deployment-Jobs können mit Skripten oder Ant- oder Maven-Aufgaben schließen, die dann Performance-Tests anstoßen.)

Von einem Release-Branch releasen

Andere Teams fügen aktuelle Arbeiten direkt der Hauptcodelinie zu und erzeugen einen Release-Branch, wenn es erforderlich ist. Während Master oder Trunk in die Testumgebung deployt werden, werden die Release-Branches in eine Staging-Umgebung und schließlich ins Produktivsystem deployt.

Vor allem diese Teams werden vom neuen Create-Release-Button profitieren, der in jedem Deployment-Projekt verfügbar ist. Es gibt oft genug Situationen, in denen es sinnvoll ist, wenn eine Person entscheidet, wann ein Release-Kandidat deployt wird, statt sich auf einen automatischen Trigger zu verlassen.

Updates für unterstützte Versionen ausliefern

Wer keine SaaS-Software entwickelt, muss möglicherweise mehrere Versionen seiner Anwendung gleichzeitig unterstützen und bisweilen kritische Fixes, Black-Port-Sicherheits-Updates etc. ausliefern. Das heißt, Versions-Branches für sehr lange Zeit zu pflegen – oftmals Jahre. Diese Branches sind normalerweise in eine bekannte Stelle deployt worden, etwa eine Website oder eine externe Repository, von wo Kunden sich Updates für die Version holen können, die sie nutzen. Diese Branching-Strategie kann in bestimmten Situationen sehr hilfreich sein.

In einem solchen Fall geht um einen sehr spezifischen Build, der ausgeliefert werden soll – anders als im vorher beschriebenen Beispiel, in dem diverse Release-Kandidaten in eine Staging-Umgebung deployt werden, ehe sie live gehen. Für diese Branches ist es optimal, Builds mithilfe des Create-Release-Buttons in Releases zu überführen. Dieser Button ist auf den Build-Results-Bildschirmen verfügbar. Man wählt den erfolgreichen Branch-Build und deployt ihn dann aus - fertig.

Bamboo einführen und/oder lizenzieren? Wir sind Ihr Partner!

Interessieren Sie sich für Bamboo von Atlassian als Integrations-Server? Wir sind offizieller Atlassian-Vertriebspartner: Gerne beraten wir Sie und unterstützen Sie bei der Lizenzierung. Bitte sprechen Sie uns an.

Ausführliche Infos über Bamboo, seine Features und sein Lizenzmodell in unserer Infothek
Wie viele Build Agents braucht mein Projekt
Continuous Integration: Zehn Argumente für Bamboo
Stash von Atlassian ist da: Git-Repository-Management für Unternehmen
Der Eclipse Connector von Atlassian: JIRA, Bamboo und FishEye in der IDE