Continuous Integration ist ein Vorgehen in der agilen Softwareentwicklung. Es beschreibt einen Prozess bei dem die gesamte Codebasis regelmässig vollständig gebaut und getestet wird, um Feedback über die Integration neuer Anwendungskomponenten zu erhalten.
Continuous Integration erfordert Umdenken
Das Einführen eines Build Servers alleine reicht nicht aus, um erfolgreich mit CI zu sein. Es ist wichtig, dass die Entwickler täglich ihren Code einchecken, sodass er gebaut und getestet werden kann. Bricht der Build ab, sollten keine Ausreden dafür gesucht werden, sondern die Fehler sofort behoben werden, damit der Build wieder- grün- ist. Bei vielen Unternehmen hat es sich als positiv herausgestellt Information für den CI Status zu nutzen, um den Status der Projekte im Unternehmen transparenter zu machen.
Continuous Integration 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 den Fachtest automatisiert ausführen oder die Codequalität überprüfen.
Continuous Integration Build Server
Es gibt mittlerweile viele Continuous Integration Build Server. Die bekanntesten im Open Source Bereich sind:
- Jenkins CI
- Hudson CI
- Cruise Control
Zudem gibt es einige kommerzielle Server, die sich grosser Beliebtheit erfreuen:
- Atlassian Bamboo
- JetBrains Teamcity