1. fejezet Mi az a Jenkins?
A Jenkins egy skálázható, folyamatos integrációs motor.
Főként a következőkre használják:
- Folyamatosan és automatikusan építs/tesztelj szoftverprojekteket.
- Figyelj néhány rendszeresen elvégzett feladatot.
Jenkins jellemzői közé tartoznak:
- Könnyen telepíthető – csak telepítsd a jenkins.war-ot egy szervlet konténerben, adatbázis támogatás nélkül.
- l Könnyű konfigurálni – minden konfigurációt a webfelületen keresztül érik el.
- l Az integrált RSS/E-mail közzéteszi a build eredményeket RSS-en keresztül, vagy értesítéseket e-mailben, amikor a build befejeződött.
- Generálok JUnit/TestNG tesztjelentéseket.
- l Distributed build support Jenkins lehetővé teszi, hogy több gép együtt építsen/teszteljen.
- l Fájlfelismerés: Jenkins nyomon követheti, hogy melyik jar-t melyik build generálja, melyik jar-verziót használja melyik build, stb.
- l Plugin támogatás: Bővítmények támogatottak, így olyan eszközöket fejleszthetsz, amelyek megfelelnek a csapatod használatának.
1 Jenkins eredete
A folyamatos integráció (CI) gyakori gyakorlattá vált sok szoftverfejlesztő csapat számára, hogy a kódminőség biztosítására koncentráljon a szoftverfejlesztés életciklusa során. Ez egy olyan gyakorlat, amely megkönnyíti és megerősíti a szoftverépítési folyamatot. És segíthet a fejlesztőcsapatodnak olyan kihívásokkal való leküzdésben, mint például:
- l Szoftverépítés automatizálás: A konfiguráció befejezése után a CI rendszer a célprogramot az előre meghatározott ütemterv szerint vagy egy adott eseményre építi fel.
- l Fenntartható automatizált ellenőrzések építése: A CI rendszer folyamatosan új vagy módosított betöltő forráskódot tud szerezni, vagyis amikor a szoftverfejlesztő csapatnak időszakosan ellenőriznie kell az új vagy módosított kódot, a CI rendszer folyamatosan ellenőrzi, hogy az új kód megzavarta-e az eredeti szoftver sikeres felépítését. Ez csökkenti a fejlesztők által a kölcsönös kód változásainak ellenőrzésére fordított időt és energiát (hogy egyenesen fogalmazzak, hehe).
- l Fenntartható automatizált tesztelés építése: kiépít egy kiterjesztett rész a csekvengésnek, végrehajtás előre meghatározott tesztszabályokat a kiépítés után, és értesítéseket (e-mail, RSS stb.) indítson el az érintett felek számára a befejezés után.
- l A következő folyamatok automatizálása a generálás után: Ha az automatizált ellenőrzések és tesztek sikeresen teljesítenek, további feladatokra lehet szükség a szoftver építési ciklusában, például dokumentáció generálása, szoftvercsomagolás és komponensek telepítése futásidejű vagy szoftvertárakba. Ez lehetővé teszi, hogy az alkatrészek gyorsabban elérhetővé váljanak a felhasználók számára.
- A CI rendszer telepítéséhez szükséges minimum követelmények a rendelkezésre álló forráskód tárolója és egy build szkriptekkel rendelkező projekt.
Az alábbi ábra összefoglalja egy CI rendszer alapvető szerkezetét:
A rendszer komponensei a következő sorrendben működnek:
1. A fejlesztő ellenőrizi a kódot a forráskód tárolójában.
2. A CI rendszer minden projekthez külön munkaterületet hoz létre. Amikor egy új build előre beállított vagy kért, a forráskódot a forráskód tárolóból a megfelelő munkaterületre tárolja.
3. A CI rendszer végrehajtja a build folyamatot a megfelelő munkaterületen.
4. (Ha konfiguráció létezik) A build befejezése után a CI rendszer egy új artefaktumban meghatározott tesztkészletet végez. Értesítéseket (e-mail, RSS stb.) indítsd el az érintett feleknek a befejezés után.
5. (Konfiguráció, ha van) Ha a build sikeres lesz, ezt a műtárgyat csomagolják és áthelyezik egy telepítési célpontra (pl. alkalmazásszerverre), vagy új verzióként tárolják a szoftvertárban. A szoftvertár lehet egy CI rendszer vagy külső tároló része, például fájlszerver vagy weboldal, mint például a Java.net, SourceForge stb.
6. A CI rendszer általában kérések alapján indít megfelelő műveleteket, például azonnali építéseket, jelentések generálását vagy néhány épített műtárgy visszaszerzését.
A Jenkins egy ilyen CI rendszer. Korábban Hudsonként ismerték.
Íme néhány ok, amiért érdemes használni a Jenkinst:
- l Ez a legkönnyebben telepíthető és konfigurálható az összes CI termék közül.
- l A webes hozzáférés alapján a felhasználói felület nagyon barátságos, intuitív és rugalmas, és sok esetben azonnali visszajelzést ad az AJAX-tól.
- l Jenkins Java-n van fejlesztve (ami nagyon hasznos, ha Java fejlesztő vagy), de nem korlátozódik Java-alapú szoftverfejlesztésre.
- l Jenkinsnek rengeteg pluginje van. Ezek a pluginok jelentősen bővítik a Jenkins funkcionalitását; Mindegyik nyílt forráskódú, és közvetlenül a webes felületen keresztül telepíthetők és kezelhetők.
1.1 Jenkins céljai Jenkins fő célja, hogy nyomon kövesse a szoftverfejlesztési folyamatot és gyorsan feltárja a problémákat. Ezért biztosíthatja, hogy a fejlesztők és a kapcsolódó munkatársak időt és energiát takarítanak meg, és javítsák a fejlesztési hatékonyságot.
A CI rendszer fő szerepe a fejlesztési folyamat során az irányítás: amikor a rendszer változást észlel a kódtárban, a build futtatásának feladatát magára a build folyamatra bízza. Ha a build meghibásodik, a CI rendszer értesíti az illetékes személyt, majd folytatja a tárhely figyelését. Karakterei passzívnak tűnnek; De ez gyorsan tükrözi a problémát.
Különösen az alábbi előnyei vannak:
- l Jenkins Minden konfigurációt el lehet végezni webes felületen. Néhány konfigurációt, mint például a MAVEN_HOME és az e-mail, csak egyszer kell konfigurálni, és minden projektet használhat. Természetesen konfigurálható az XML módosításával is.
- l A Maven-t támogató modulok esetén Jenkins optimalizálta a Mavent, így automatikusan felismeri a modulokat, és minden modul egy feladatként konfigurálható. Elég rugalmas.
- l Tesztjelentés aggregálása, az összes modul tesztjelentései összesítenek, és az eredmények egy pillantásra egyértelműek, más CI-k használatával, ami szinte lehetetlen feladat.
- l Ereklyenyomat, az egyes build eredményei automatikusan jól kezelhetők, és könnyen böngészhető és letölthető konfiguráció nélkül.
|