1. peatükk Mis on Jenkins?
Jenkins on skaleeritav, pideva integreerimise mootor.
Peamiselt kasutatakse:
- Ehita/testi tarkvaraprojekte pidevalt ja automaatselt.
- l Jälgi mõningaid regulaarselt tehtud ülesandeid.
Jenkinsil on järgmised omadused:
- Lihtne paigaldada – lihtsalt juuruta jenkins.war servlet-konteinerisse ilma andmebaasitoeta.
- l Lihtne seadistada – kõik konfiguratsioonid saavutatakse selle pakutava veebiliidese kaudu.
- l Integreeritud RSS/e-post avaldab ehitustulemused RSS-i kaudu või teavitused e-posti teel, kui ehitus on lõpetatud.
- Genereerin JUnit/TestNG testiaruandeid.
- l Hajutatud ehituse tugi Jenkins võimaldab mitmel masinal koos ehitada/testida.
- l Failituvastus: Jenkins suudab jälgida, millised jar'id genereeritakse millise ehituse järgi, millist jar'i versiooni kasutatakse millises versioonis jne.
- l Pluginatugi: Laiendused on toetatud, nii et saad arendada tööriistu, mis sobivad sinu meeskonna kasutusega.
1 Jenkinsi päritolu
Pidev integreerimine (CI) on muutunud paljude tarkvaraarendusmeeskondade seas tavapäraseks, keskendudes koodi kvaliteedi tagamisele kogu tarkvaraarenduse elutsükli vältel. See on praktika, mis on loodud tarkvara loomise protsessi lihtsustamiseks ja kindlustamiseks. Ja see aitab teie arendusmeeskonnal tulla toime väljakutsetega nagu:
- l Tarkvara ehituse automatiseerimine: Pärast konfiguratsiooni lõpetamist ehitab CI süsteem sihttarkvara vastavalt eelnevalt määratud ajakavale või konkreetse sündmuse jaoks.
- l Ehita jätkusuutlikke automaatseid kontrolle: CI süsteem saab pidevalt hankida uut või muudetud check-in lähtekoodi, st kui tarkvaraarendusmeeskond peab perioodiliselt uut või muudetud koodi kontrollima, kontrollib CI süsteem pidevalt, kas uus kood on häirinud originaaltarkvara edukat ehitust. See vähendab arendajate aega ja pingutust, mida nad kulutavad oma sõltuva koodi muudatuste otsimisele (otsekoheselt öeldes, hehe).
- l Ehita jätkusuutlik automatiseeritud testimine – ehita kontrollist pikendatud osa, täida pärast ehitamist eelmääratletud testireeglite komplekt ning käivita teavitused (e-post, RSS jne) vastavatele osapooltele pärast lõpetamist.
- l Järgnevate protsesside automatiseerimine pärast genereerimist: Kui automatiseeritud kontrollid ja testid on edukalt lõpetatud, võivad tarkvara ehitustsüklis olla vajalikud täiendavad ülesanded, nagu dokumentatsiooni genereerimine, tarkvara pakendamine ja komponentide juurutamine käitusajas või tarkvarahoidlasse. See võimaldab komponente kasutajatele kiiremini kättesaadavaks teha.
- CI süsteemi juurutamiseks nõutavad miinimumnõuded on olemasoleva lähtekoodi hoidla ja projekt koos ehitusskriptidega.
Järgmine diagramm võtab kokku CI süsteemi põhistruktuuri:
Süsteemi komponendid töötavad järgmises järjekorras:
1. Arendaja kontrollib koodi lähtekoodi hoidlasse.
2. CI süsteem loob iga projekti jaoks eraldi tööruumi. Kui uus ehitus on eelseadistatud või taotletud, salvestab see lähtekoodi lähtekoodi hoidlast vastavasse tööruumi.
3. CI süsteem täidab ehitusprotsessi vastavas tööruumis.
4. (Kui konfiguratsioon eksisteerib) Kui ehitus on lõpetatud, viib CI süsteem läbi määratletud testide komplekti uues artefaktis. Käivita teavitused (e-post, RSS jne) vastavatele osapooltele pärast lõpetamist.
5. (Konfiguratsioon, kui olemas) Kui ehitus õnnestub, pakendatakse see artefakt ja edastatakse paigaldussihtmärgile (nt rakendusserverile) või salvestatakse uue versioonina tarkvarahoidlasse. Tarkvarahoidla võib olla osa CI-süsteemist või välisest hoidlast, näiteks failiserver või veebileht nagu Java.net, SourceForge jne.
6. CI süsteem algatab tavaliselt vastavad tegevused päringute alusel, näiteks kohesed ehitused, aruannete genereerimine või mõne ehitatud artefakti hankimine.
Jenkins on üks selline CI süsteem. Varem tuntud kui Hudson.
Siin on mõned põhjused Jenkinsi kasutamiseks:
- l See on kõige lihtsam paigaldada ja seadistada kõigi CI toodete seas.
- l Veebipõhise ligipääsu põhjal on kasutajaliides väga sõbralik, intuitiivne ja paindlik ning paljudel juhtudel annab AJAX-ilt kohest tagasisidet.
- l Jenkins on arendatud Javal (mis on väga kasulik, kui oled Java arendaja), kuid see ei piirdu ainult Java-põhise tarkvara loomisega.
- l Jenkinsil on palju pluginaid. Need pluginad laiendavad oluliselt Jenkinsi funktsionaalsust; Kõik need on avatud lähtekoodiga ning neid saab otse veebiliidese kaudu paigaldada ja hallata.
1.1 Jenkinsi eesmärgid Jenkinsi peamine eesmärk on jälgida tarkvaraarenduse protsessi ja kiiresti avastada probleeme. Seetõttu saab see tagada, et arendajad ja seotud töötajad säästavad aega ja vaeva ning parandavad arenduse efektiivsust.
CI süsteemi peamine roll kogu arendusprotsessi vältel on juhtimine: kui süsteem tuvastab koodihoidlis muudatuse, delegeerib ta ehituse käivitamise ülesande otse ehitusprotsessile. Kui ehitus ebaõnnestub, teavitab CI süsteem vastavat isikut ja jätkab hoidla jälgimist. Selle tegelased tunduvad passiivsed; Kuid see peegeldab probleemi kiiresti.
Eriti on sellel järgmised eelised:
- l Jenkins Kõiki konfiguratsioone saab teha veebiliidesel. Mõned konfiguratsioonid, nagu MAVEN_HOME ja e-post, vajavad seadistamist vaid korra ning kõiki projekte saab kasutada. Loomulikult saab seda seadistada ka XML-i muutmisega.
- l Mavenit toetavate moodulite puhul on Jenkinsil optimeeritud Maven, nii et ta suudab automaatselt mooduleid ära tunda ning iga moodulit saab konfigureerida tööna. Üsna paindlik.
- l Testaruannete koondamine, kõigi moodulite testaruanded koondatakse kokku ja tulemused on esmapilgul selged, kasutades teisi CI-sid, mis on peaaegu võimatu ülesanne.
- l Artefakti sõrmejälg, iga ehituse tulemus on hästi automaatselt hallatav ning seda saab hõlpsasti sirvida ja alla laadida ilma konfiguratsioonita.
|