Integrációs eszközök

Áttekintés

A CI/CD rövidítés az alábbiakat takarja:

  • CI: Continuous Integration: ez maga az eszköz, amely a folyamatos integrációt (tkp. az azonnali fordítást) teszi lehetővé.
  • CD: Continuous Delivery: ez egy módszertan, melynek célja a minél gyorsabb ("folyamatos") szállítás.

Integrációs eszközök

Az integrációs eszközök (angolul: continuous integration) célja többrétű:

  • Új verzió létrehozása ("szép magyar" kifejezéssel release-elés). Sokféle hibát okozhat az, ha valakinek a fejlesztői számítógépén készülnek a verziók; azt egy független szerveren érdemes végrehajtani. Egy integrációs eszköz erre tökéletes; valójában ez a legfontosabb feladata.
  • Folyamatos ellenőrzés. Ha valaki egy új verziót tölt fel a közös kódbázisba, akkor az integrációs eszköz azonnal lefordítja. Ha hibát talál benne, akkor azonnal küld értesítést. Hibát akár egy elrontott egységteszt is okozhat, vagy egy olyan forrásfájl, melyet elfelejtett a fejlesztő feltölteni. De merészebbet is gondolhatunk: egyes integrációs eszközök esetén azt is be lehet állítani, hogy akkor is hibásként jelezze a fordítást, ha kódolási szabálysértés került bele, vagy mondjuk az egységtesztek nem fedik le kellő arányban a kódot.
  • Verziózás. Egyes integrációs eszközös képesen automatikusan növelni a verziószámot, így biztos nem marad el.
  • Ütemezett futtatás. Lehetnek olyan műveletek a forráskódon, melyet rendszeres időközönként, pl. naponta vagy hetente egyszer végre kell hajtani; általában erre is használhatjuk az integrációs eszközöket. Például egy nagyobb erőforrás igényű rendszerteszt végrehajtását érdemes éjszakára ütemezni, hogy ne zavarja a napi munkavégzést, és reggelre meg legyen az eredmény.
  • Monitorozás. Az integrációs eszközök alapfeladata elsősorban nem a monitorozás, de alapvető monitorozási feladatok végrehajtására általában kiváló. Például a már említett automatikus figyelmeztető üzeneteket tekinthetjük egyfajta monitorozásnak, ill. általában egyszerűbb kimutatásokat is készít, pl. arról, hogy az elmúlt x fordításból mennyi volt sikeres.

Ez az oldal jól összefoglalja az integrációs eszközöket: https://en.wikipedia.org/wiki/Comparison_of_continuous_integration_software.

Jenkins

TODO

TeamCity

TODO

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License