Continuous Integration (CI) ist die Praxis, Änderungen mehrmals täglich zusammenzuführen und dabei prüfen zu lassen. Jeder Push löst Bauen und Tests aus, und das Ergebnis steht in Minuten fest.
- Continuous Integration (CI)
Die Praxis, Änderungen mehrmals täglich zusammenzuführen und dabei prüfen zu lassen.
Beispiel: „Mit Continuous Integration fiel der Fehler zwölf Minuten nach dem Push auf.“Auf Deutsch fortlaufende Integration. Den Begriff hat Grady Booch 1991 geprägt; verbreitet hat ihn Extreme Programming mit der Forderung, mehrmals täglich zusammenzuführen.
Abgrenzung zur Build-Pipeline: Diese ist der eingerichtete Ablauf. Continuous Integration ist die Arbeitsweise, die ihn auslöst.
Was Continuous Integration praktisch bedeutet
Zwei Gewohnheiten. Erstens landet jede Änderung am Tag ihrer Entstehung im gemeinsamen Stand; zweitens prüft eine Maschine diesen Stand bei jedem Push, ohne dass jemand daran denken muss.
Der Gewinn liegt in der Zeitspanne. Ein Fehler, der am selben Tag auffällt, kostet Minuten; derselbe Fehler nach drei Wochen kostet einen Tag, weil niemand mehr weiß, was damals gedacht war.
Was eine CI-Prüfung mindestens tut
Drei Schritte. Sie prüft die Formatierung, sie lässt eine statische Analyse über den Code laufen, und sie führt die Tests aus; erst wenn alle drei durch sind, darf die Änderung in den Hauptzweig.
In diesem Projekt ist das genau ein Befehl, der Pint, PHPStan, Rector und Pest hintereinander laufen lässt und beim ersten Fehlschlag anhält. Dieselbe Prüfung läuft lokal vor jedem Commit.
Woran Continuous Integration scheitert
An der Dauer und am Vertrauen. Eine Prüfung, die zwanzig Minuten braucht, wird umgangen; eine, die regelmäßig ohne Grund rot ist, wird ignoriert, und danach ist sie wertlos.
Deshalb gilt die Reihenfolge: schnelle Tests zuerst, lange parallel oder nachts, und ein wackliger Test wird repariert oder entfernt, siehe Automatisierter Test in der Pipeline.