Skip to content

Jatkuva integrointi - Continuous Integration (CI)

Kuvauksen kirjoitti: Kari Maaheimo

Lyhyt kuvaus käsitteestä tai aiheesta

Jatkuva integrointi, eli Continuous Integration (CI) on käytäntö, jossa useampi\ tekijä puskee koodia samaan jaettuun repositorioon mahdollisesti useita kertoja\ päivässä. Jatkuvalle integroinnille on oleellista versionhallintajärjestelmä,\ johon sisältyy automaattisia tarkistuksia, joilla varmistetaan mm. uuden koodin\ toimivuus. Tämä prosessi löytyy mm. GitLabista CI/CD pipelinen muodossa, jossa\ CI viittaa juuri jatkuvaan integrointiin (CD jatkuvaan julkaisuun). Esimerkkinä\ osana tätä harjoitustehtävää CI/CD pipeline tarkistaa automaattisesti muutosten\ tapahtuessa, muiden asioiden ohella, onko kirjoitettu markdown puhdasta.\

Ilman jatkuvaa integrointia uuden koodin integrointi projektiin olisi tehtävä\ käsipelillä, mikä vaikeuttaisi elämää huomattavasti. Integrointi olisi aina iso\ johdettu prosessi, joka puolestaan hidastaisi ongelmien löytämistä, joka sekin\ olisi tehtävä käsipelillä. Jatkuvan integroinnin avulla uuden koodin voi puskea\ repositorioon omatoimisesti ja heti nähdä mikä koodissa on pielessä. Virheiden\ löytämiseen ei kulu ylimääräistä aikaa ja korjausten toimivuuden tarkistaminen\ on vaivatonta.\

Jatkuvan integroinnin ansiosta projektilla ei tarvitse olla kuin yksi\ lähdekoodin repositorio, minkä ansiosta projektin viimeisin toimiva versio on\ kaikille myös helposti saatavilla. Lisäksi integroitu koodi on kaikille\ helposti nähtävissä, joka puolestaan helpottaa muutosten seuraamista sekä\ auttaa kaikkia ymmärtämään missä mennään. Jatkuva integraatio myös mahdollistaa\ useiden erillisten tehtävien työstämisen rinnakkain osana samaa projektia\ vaikuttamatta toisiinsa. Kun erillinen osa projektia valmistuu, integroidaan se\ valmiina kokonaisuutena osaksi itse projektia. CI pitää huolen siitä, että tämä\ integrointi tapahtuu mahdollisimman sujuvasti, automatisoiden siihen liittyvät\ toimet.\

Arvattavasti myös ohjelmistotestaus on iso osa jatkuvaa integrointia. Jatkuva\ integrointi mahdollistaa testien automaattisen ajamisen aina kun uutta koodia\ integroidaan. Projektista saadaan siis itsetestaava.

Muuta aiheeseen liittyvää

Jatkuva julkaisu, eli continuous deployment liittyy hyvin läheisesti jatkuvaan\ integrointiin. Jatkuva julkaisu tyypillisesti tapahtuu jatkuvan integroinnin\ tehtyä tehtävänsä. Tästä lisää jatkuvan julkaisun omalla sivulla.

Linkit ulkopuolisiin lähteisiin

Avainsanat harjoitustehtävän repositoriossa