Continuous integration is een werkwijze waarbij developers hun wijzigingen vaak samenvoegen in een gedeelde codebase, en een geautomatiseerd systeem elke wijziging bouwt en test zodra die binnenkomt. In plaats van wekenlang apart te werken, komt het werk van iedereen vroeg en vaak samen.
Zie het als een groep die samen één groot diner kookt. Als iedereen proeft en zijn gerecht onderweg samenvoegt, wordt een te zoute saus meteen opgemerkt. Koken ze allemaal apart en voegen ze pas helemaal aan het eind samen, dan ontdek je de botsingen wanneer het veel te laat is om het netjes op te lossen. Continuous integration is dat constante proeven: elke samenvoeging start een automatische build en testrun, zodat een kapotte wijziging binnen minuten opvalt in plaats van wekenlang verborgen blijft.
De echte waarde zit in de automatische checks. Een goede CI-opzet leunt op testautomatisering, zodat het systeem op het moment dat iemand code pusht bevestigt dat er niets anders kapot is. Het is de eerste helft van een CI/CD-pijplijn en legt de basis om wijzigingen snel en veilig uit te rollen.
De werkwijze loont alleen als de terugkoppeling snel en betrouwbaar blijft. Een pijplijn van veertig minuten verleidt mensen om hem over te slaan, en een die willekeurig faalt (‘flaky’ tests) leert het team rode builds te negeren, en dan ben je de winst kwijt. Daarom houden teams de suite snel en stabiel, en repareren ze een kapotte build voordat ze iets nieuws schrijven. De gewoonte van kleine, frequente samenvoegingen houdt ook de pijnlijke conflicten weg, want twee mensen lopen binnen één dag zelden ver uit elkaar.
Bij TopDevs zetten we continuous integration vanaf dag één van een project op, zodat kleine problemen meteen aan het licht komen en de codebase in een staat blijft die we op elk moment kunnen uitrollen.