Continuous integration (CI)
Att varje föreslagen ändring automatiskt byggs och testas, så att fel upptäcks innan ändringen förs in.
- Kallas även
- kontinuerlig integration
- Kategori
- Utvecklingsflöde
Continuous integration, CI, kontinuerlig integration
Enkel förklaring
Continuous integration, förkortat CI, betyder att en dator automatiskt kontrollerar varje ändring innan den förs in i projektet. Hittas ett fel syns det direkt, med en röd markering, och ändringen kan rättas innan den gör skada.
Kontrollen består oftast av två delar. Först byggs programmet, alltså görs i ordning så att det går att köra. Sedan körs tester: små program som kontrollerar att resten av programmet gör det det ska.
Integration betyder här att föra ihop allas ändringar. Continuous, kontinuerlig, betyder att det görs ofta och hela tiden, inte en gång i månaden.
Teknisk förklaring
Begreppet beskrivs av bland andra Martin Fowler: alla i ett team för in sina ändringar i den gemensamma koden ofta, minst dagligen, och varje sådan integration kontrolleras av ett automatiskt bygge med tester.
I praktiken startas CI automatiskt vid varje push eller pull request. Stegen
beskrivs i en pipeline och körs av en runner. Resultatet visas som
statuskontroller, gröna eller röda, på pull requesten. Tjänsten kan ställas in så att en ändring inte
får föras in förrän kontrollerna är gröna.
Praktiskt exempel
I Kodkollektivet Academy körs CI på varje pull request:
- typkontroll och enhetstester
- bygge av hela webbplatsen
- kontroll av säkerhetsinställningar och alla interna länkar
- tester i tre olika webbläsare och en kontroll av tillgängligheten
Är något steg rött kan pull requesten inte föras in.
När och varför används det?
CI används i de flesta mjukvaruprojekt där fler än en person arbetar. Fel hittas tidigt, när de är små och lätta att rätta, och ingen behöver komma ihåg att köra alla tester för hand.
CI är särskilt viktigt när en AI-agent skriver kod. Testerna kontrollerar varje ändring på samma sätt, oavsett vem eller vad som skrivit den.
Vanliga missförstånd
- “Grönt betyder att allt är rätt.” Nej. Grönt betyder bara att de tester som finns går igenom. Det som inte testas kan fortfarande vara fel.
- “CI är ett program.” CI är ett arbetssätt. Det finns många verktyg som stöder det, till exempel Forgejo Actions, GitHub Actions och GitLab CI.
- “CI och CD är samma sak.” Nej. CI kontrollerar ändringarna. CD, alltså continuous delivery eller continuous deployment, handlar om att leverera dem.