Continuous Integration

Continuous Integration

Continuous Integration (CI) is een aanpak die veel gebruikt wordt in de software industrie. Het controleert continu de applicatie tijdens het ontwikkelproces. Als ontwikkelaar ben je altijd bezig met het ontwikkelproces van de applicatie. Naast het schrijven van nieuwe ontwikkelingen, zijn we ook bezig met het integreren van die nieuwe ontwikkelingen. We zijn veel tijd kwijt als we dit handmatig zouden moeten testen. Bestanden ophalen, code reviewen, overleggen, etc. Uiteindelijk kan de nieuwe ontwikkeling geïmplementeerd worden in de applicatie. 

Om tijd te winnen en zoveel mogelijk te leveren, zijn we bezig Continuous Integration te implementeren in onze projecten. Naast integratie willen we natuurlijk ook snel opleveren. Dat gebeurd met Continuous Delivery of Continuous Deployment. Hierover zal ik het in mijn volgende blogpost hebben. In deze blogpost neem ik je mee wat er bij komt kijken en wat CI ons allemaal te bieden heeft.

Tests

Om te zorgen dat we zelf niet hoeven te testen, gaan we tests schrijven. Deze tests gaan de applicatie testen op de nieuwe ontwikkelingen. Maar hoe zorgen we er dan voor dat onze tests juist zijn? Dat doen we door Test Driven Development toe te passen. We schrijven eerst in onze tests hoe we de code uiteindelijk willen aanroepen en gebruiken. Pas daarna schrijven we de code om de test te laten slagen. Bij elke aanpassing die we maken, laten we de test opnieuw lopen, zodat we zien of de vorige aanpassing geslaagd is.

Automatisch testen

Met wat configuratie kunnen we de applicatie uiteindelijk automatisch laten testen. Hiervoor hebben wij een server ingericht met software (bijvoorbeeld Jenkins) die de nieuwe ontwikkeling bouwt en test. Dit noemen wij een build. In een build wordt de hele applicatie als het ware gebouwd en getest door de automatische tests die wij geschreven hebben.

Op basis van een zogeheten Pull Request, een aanvraag om te integreren in de productiecode, geven wij onderwater een seintje naar de ingerichte server met de opdracht dat onze code opnieuw gebouwd en getest moet worden. De server downloadt de gehele applicatie met de nieuwe ontwikkelingen en test deze vervolgens door middel van onze zelf geschreven tests. Zijn alle tests geslaagd? 

Dan komt er een groen vinkje te staan dat de build met zijn tests geslaagd is en geen fouten geeft met de nieuwe productiecode.

Vanaf nu is het mogelijk om de code samen te voegen, ook wel 'mergen' genoemd, naar de productiecode om uiteindelijk op te leveren. 

Vervolg

Naast het automatisch samenvoegen van onze code, kunnen we ook automatisch opleveren door middel van Continuous Delivery. Hierover komt binnenkort een nieuw blogartikel.