Continuous Integration

Ohne Continuous Integration wären kurze Demo- und Produktzyklen undenkbar. Jederzeit ein funktionierendes Software-Produkt ausliefern zu können – das ist das Ziel von CI.

Continuous Integration

Continuous Integration ist eine grundlegende Praktik in der agilen Softwareentwicklung. Continuous Integration beschreibt einen Prozess, bei dem die gesamte Codebasis regelmäßig vollständig gebaut und getestet wird, um Feedback über die Integration neuer Anwendungskomponenten zu erhalten.

Unser Blog-Eintrag Continuous Integration im Überblick bietet einen guten Einstieg in das Thema.

CI erfordert Umdenken

Das Einführen eines CI Build Servers alleine reicht nicht aus, um erfolgreich mir CI zu sein. Es ist wichtig, dass die Entwickler regelmäßig (mind. einmal am Tag) ihren Code einchecken, so dass er gebaut und getestet werden kann. Bricht der Build, sollten keine Ausreden dafür gesucht werden, sondern die Fehler sofort behoben werden, damit der Build wieder „grün“ ist.

Bei uns hat es sich als positiv herausgestellt Information Radiator für den CI Status zu nutzen, um den Status der Projekte im Unternehmen transparenter zu machen.

CI erfordert agile Praktiken

Man kann nicht einfach einen CI Server installieren, und schon macht man Continuous Integration. Man benötigt dafür beispielsweise auch ein Source-Control-System, in das die Sourcen zentral eingecheckt werden und dazu ein Build-System wie Maven oder Ant, um das Projekt und seine Komponenten bauen zu können.

Dazu bietet es sich an neben dem Build für Compile und Unit Testing auch erweiterte Builds im CI zu haben, die beispielsweise die Fachtests automatisiert ausführen (siehe auch Agiles Testen) oder die Code-Qualität überprüfen.

CI Build Server

Es gibt mittlerweile viele Continuous Integration Build Server. Die bekanntesten im Open-Source-Bereich sind:

Zudem gibt es einige kommerzielle Server, die sich großer Beliebtheit erfreuen:

  • Atlassian Bamboo
  • Jetbrains Teamcity

Continuous Integration Using Docker

Welche Werkzeuge helfen beim Aufsetzen einer Continuous-Integration-Plattform?

Diese Frage beantwortet die Videoaufzeichnung eines Webinars mit Marcel Birkner (codecentric), Brian Dawson (CloudBees) und Curtis Yanko (Sonatype), das ursprünglich auf DevOps.com gehostet wurde. Das Team aus erfahrenen Sprechern beschreibt im Video Tipps, Regeln und Tools, mit denen ein CI-Programm erfolgreich auf Docker laufen kann. Die beschriebene Docker Toolchain besteht aus GitLab, Jenkins, Nexus, Sonar und Selenium.

Continuous Integration für iOS Projekte mit Jenkins

Mit unserem zentralen Jenkins Continuous Integration Server werden nach jedem Check-in-Vorgang automatische Builds aller unserer Module durchgeführt. Der Status der Builds wird ständig auf Bildschirmen in den Büros und neben der Kaffeemaschine angezeigt. Damit haben wir Transparenz über alle unsere Module.
Alle Module? – Na ja, zumindest über alle Java- und Android-Anwendungen, die sich auf dem unter Linux laufenden Jenkins kompilieren lassen. Doch was ist mit Continuous Integration und iOS-Applikationen? – Da sich iOS-Anwendungen leider nicht so einfach auf einem Linux-basierten System erstellen lassen, haben diese sich lange Zeit der Transparenz entzogen. Doch damit ist jetzt Schluss! Dieser Artikel beschreibt Schritt für Schritt, wie wir Continuous Integration von iOS-Anwendungen durchführen.

Die codecentric setzt in ihren eigenen Projekten Continuous Integration mit Jenkins ein. Wir unterstützen Sie bei der Einführung agiler Methoden und agiler Praktiken und begleiten Teams, die ein Continuous-Integration-System aufsetzen und nutzen wollen. Ganz konkret können die Praktiken im Team in unserem Professional Scrum Developer-Training erlernt werden.

Nehmen Sie Kontakt mit uns auf.

Jetzt informieren!