Pidev integratsioon

Pidev integratsioon (inglise keeles continuous integration, lühend CI) on tarkvaraarenduses järgitav tava, kus arendajad pidevalt oma koodi ühisesse hoidlasse üles panevad.

Iga muudatust kontrollib automaatne protsess, mis tagab arendusprojekti stabiilsuse ning kui esineb vigu, leitakse need kiiresti. Selleks et arendajate tehtud muudatused koodis ei jääks isoleerituks, peavad arendajad oma muudatused ühishoidlas asuva koodiga liitma. Nende muudatuste edukust testitakse kohe, luues uus tarkvaraversioon (build), mida testivad automaattestid. Pidev integratsioon säästab aega, kuna identifitseerib varakult koodimuudatustest tulenevad konfliktid ja regressioonid, kuid selle edukaks läbiviimiseks on vaja palju automaatteste.

Head tavad 
Üks lähtekoodihoidla
Tarkvaraarenduse protsessi automatiseerimine
Pärast iga muudatuse üleslaadimist peaks tarkvaraarendus toimuma keskses integratsiooniarvutis
Tarkvaraarendusprotsess peab toimuma kiiresti
Testimine toimub LIVE keskkonna põhjal kloonitud keskkonnas
Terve protsess on kõigile nähtav

Kuidas seda edukalt läbi viia 
Arendajad tõmbavad lähtekoodi oma arvutisse
Pärast arenduste/muudatuste tegemist laadivad arendajad muudetud koodi ühishoidlasse
Muudatuste üleslaadimisel kehtib reegel "mida tihemini, seda parem" (ideaalis kuni mitu korda päevas)
Server ehitab tarkvaraversiooni ning käitab üksust ja integratsiooniteste
Server tekitab testimiseks kasutatavad artefaktid
Server teavitab tiimi eduka tarkvaraversiooni ehitamisest
Kui testid või tarkvaraversiooni ehitamine ei õnnestu, siis server teavitab tiimi
Tiim selgitab probleemi välja ja parandab 
See protsess jätkub terve tarkvaraarenduse elutsükli jooksul

Ohud ja riskid 
Automaattestide loomine ja kaasajastamine nõuab palju aega
Automaatse tarkvaraarendusprotsessi loomine on keeruline
Väiksemate projektide puhul ei lisa väärtust
Lisaväärtus sõltub testide kvaliteedist ja sellest, kui lihtsalt testitav on kood
Juhul kui muudatused pole lõplikult valmis, aga arendajad laadivad ikkagi oma koodi hoidlasse üles, siis integratsioonitestid kukuvad läbi, kuni funktsioon on lõpetatud

Vaata ka 
Jenkins – kõige populaarsem pidev integratsiooni tööriist
Pideva integratsiooni tööriistade võrdlus

Viited 

Tarkvaraarendus