Continuous Integration Server

Veröffentlicht auf 28. Februar 2014

Bereits in der klassischen Softwareentwicklung war eine Automatisierung von bestimmten Arbeiten, wie z.B. das Kompilieren und Ausliefern von Software, eine gern genutzte Option. Mit Beginn der agilen Entwicklung und immer schnelleren Zyklen bekam das Thema weiter Auftrieb. Eine fortlaufende Integration (Continuous Integration - CI) und ständige Tests wurden nötig, um stets ein funktionierendes Produkt vorweisen zu können.

Unter CI versteht man die fortlaufende Integration der Komponenten zu einer Anwendung, nachdem Änderungen an eine Versionsverwaltung übermittelt wurden.
Im Anschluss können ggf. Softwaremetriken zur Qualitätsbestimmung ermittelt, die automatischen Softwaretests ausgeführt und bei bestandenen Tests, die Software als Kontinuierliche Auslieferung bereitgestellt werden.

Aus meinen Erfahrungen mit Continuous Integration Servern ist mir Jenkins CI, ein Ableger von Hudson CI, in guter Erinnerung geblieben.
Jenkins ist dabei eine eigene Installation mit klassischer Weboberfläche, auf der man Jobs erstellen kann. Diese können bestimmte Eigenschaften oder Abhängigkeiten haben und setzen sich aus Schritten zusammen. Die Vorbereitung der Testumgebung ist möglich, ein Auschecken aus einer Versionverwaltung, das Bauen der Software, Ausführen von Befehlen auf Kommandozeilenebene oder das Übertragen von Dateien. Im Anschluss werden Reports erstellt und Benachrichtigungen versendet.

Jenkins ist dabei vom Aufbau her für eine große Modularität ausgelegt. Durch  aktuell über 600 Plugins können weitere Funktionen, Software und weiteres Werkzeug angebunden werden.
Unterstützungen für die typischen Werkzeuge wie Versionverwaltung (CVS, Subversion, Git, ...) oder Build (Ant, Maven, ...) oder Codeabdeckung (Checkstyle, Cobertura, Clover, ...) oder oder oder sind auf jeden Fall gegeben.


Eine interessante kommerzielle Alternative ist Bamboo von Atlassian.
Es stellt im Prinzip die gleichen Funktionen zur Verfügung, aber schöner und immer noch ein bisschen besser.

 

Eine Empfehlung zwischen den beiden Servern kann man somit kaum geben. Hier entscheiden individuelle Grundlagen und Vorlieben.

Geschrieben von Robert Bullinger

Veröffentlicht in #Tools

Kommentiere diesen Post