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.[1]

Iga muudatust kontrollib automaatne protsess, mis tagab arendusprojekti stabiilsuse ning kui esineb vigu, leitakse need kiiresti.[2] 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.[3] Pidev integratsioon säästab aega, kuna identifitseerib varakult koodimuudatustest tulenevad konfliktid ja regressioonid, kuid selle edukaks läbiviimiseks on vaja palju automaatteste.

Head tavad[4] muuda

  • Ü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[4] muuda

  • 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[5] muuda

  • 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 muuda

Viited muuda

  1. https://www.thoughtworks.com/continuous-integration. Vaadatud 07.10.2018. {{cite web}}: puuduv või tühi pealkiri: |title= (juhend)
  2. https://www.martinfowler.com/articles/continuousIntegration.html#PracticesOfContinuousIntegration. Vaadatud 07.10.2018. {{cite web}}: puuduv või tühi pealkiri: |title= (juhend)
  3. https://www.atlassian.com/continuous-delivery/ci-vs-ci-vs-cd. Vaadatud 12.10.2018. {{cite web}}: puuduv või tühi pealkiri: |title= (juhend)
  4. 4,0 4,1 https://www.thoughtworks.com/continuous-integration. Vaadatud 12.10.2018. {{cite web}}: puuduv või tühi pealkiri: |title= (juhend)
  5. https://en.wikipedia.org/wiki/Continuous_integration#Costs_and_benefits. Vaadatud 12.10.2018. {{cite web}}: puuduv või tühi pealkiri: |title= (juhend)