Kontinuirana integracija (CI) je praksa držanja repozitorija programskog koda koji se često ažurira s promjenama programera. To pomaže osigurati da više programera ne stvara programski kod koji je u sukobu jedan s drugim. Bez kontinuirane integracije, sukobi koji sprječavaju izvođenje koda postaju prilično česti.
U okruženju s više programera, postaje potrebno formirati sustav koji programerima omogućuje zajednički rad. Središnji sustav koda naziva se baza koda ili repozitorij koda i služi kao početna točka za sav rad programera. Svaki programer u grupi može imati drugačiji zadatak. Jedan će možda morati poboljšati korisničko sučelje, dok drugi može riješiti problem u kodu.
Programeri mogu raditi na različitim aspektima programa, ali postoji mogućnost sukoba. Ti sukobi mogu dovesti do toga da program postane nestabilan ili čak dovesti do toga da aplikacija uopće ne radi. To prisiljava programere da troše dodatno vrijeme na utvrđivanje koji dio koda uzrokuje problem. To rezultira gubitkom produktivnosti i vremena jer su programeri prisiljeni rješavati probleme koji su se mogli izbjeći.
Kontinuirana integracija rješenje je ovog problema. Kontinuirana integracija funkcionira tako što osigurava da se svaka promjena koju programer napravi odmah ažurira u spremištu koda. Kada drugi programer pristupi spremištu koda, primit će kopiju s promjenama koje je prethodni programer napravio. To pomaže osigurati da svaki razvojni programer dobije najažurniju raspoloživu kopiju programskog koda.
Kontinuirana integracija ne sprječava probleme integracije. Iako kontinuirana integracija pomaže ograničiti probleme integracije, ti se problemi i dalje pojavljuju u svim okruženjima s više programera. Čak i uz kontinuiranu integraciju, svaki pojedini programer još uvijek treba vremena da unese promjene u kodu. To rezultira nekim promjenama u spremištu, a da drugi programeri to ne shvaćaju.
Iako kontinuirana integracija nije u stanju ublažiti sve sukobe koji nastaju u okruženju s više programera, to je učinkovito rješenje koje maksimizira produktivnost. Omogućuje više programera da rade zajedno i stvaraju aplikacije u razumnom vremenu. Bez toga, programeri bi bili prisiljeni provoditi sate pokušavajući ispraviti probleme koji nastaju kao rezultat pokušaja integracije dva različita dijela koda. CI štedi programerima vrijeme i štedi novac tvrtkama i potrošačima.