Luku 1 Mikä on Jenkins?
Jenkins on skaalautuva, jatkuva integraatiomoottori.
Käytetään pääasiassa seuraaviin tarkoituksiin:
- Rakenna/testaa ohjelmistoprojekteja jatkuvasti ja automaattisesti.
- Seuraa joitakin säännöllisesti suoritettuja tehtäviä.
Jenkinsin ominaisuuksia ovat:
- Helppo asentaa – ota jenkins.war käyttöön servlet-konttiin ilman tietokantatukea.
- l Helppo konfiguroida – kaikki asetukset toteutetaan sen tarjoaman verkkokäyttöliittymän kautta.
- l Integroitu RSS/E-mail julkaisee rakennustulokset RSS:n kautta tai ilmoitukset sähköpostitse, kun rakennus on valmis.
- Luo JUnit/TestNG-testiraportit.
- l Hajautettu rakennustuki Jenkins mahdollistaa useiden koneiden rakentamisen ja testauksen yhdessä.
- l Tiedostontunnistus: Jenkins voi seurata, mitkä jarit generoidaan missäkin versiossa, mitä jar-versiota käytetään missäkin versiossa jne.
- l Lisäosatuki: Laajennukset ovat tuettuja, joten voit kehittää työkaluja, jotka sopivat tiimisi käyttöön.
1 Jenkinsin alkuperä
Jatkuvasta integraatiosta (CI) on tullut yleinen käytäntö monien ohjelmistokehitystiimien keskuudessa keskittyä koodin laadun varmistamiseen koko ohjelmistokehityksen elinkaaren ajan. Se on käytäntö, joka on suunniteltu helpottamaan ja vahvistamaan ohjelmistokehitysprosessia. Ja se voi auttaa kehitystiimiäsi kohtaamaan haasteita, kuten:
- l Ohjelmistorakentamisen automaatio: Konfiguroinnin valmistuttua CI-järjestelmä rakentaa kohdeohjelmiston ennalta määrätyn aikataulun mukaisesti tai tiettyä tapahtumaa varten.
- l Rakentaa kestäviä automatisoituja tarkistuksia: CI-järjestelmä voi jatkuvasti hankkia uutta tai muokattua tarkistuslähdekoodia, eli kun ohjelmistokehitystiimin täytyy tarkistaa uusi tai muokattu koodi säännöllisesti, CI-järjestelmä varmistaa jatkuvasti, onko uusi koodi häirinnyt alkuperäisen ohjelmiston onnistunutta rakentamista. Tämä vähentää kehittäjien käyttämää aikaa ja vaivaa, joka etsii muutoksia keskinäisriippuvaisessa koodissaan (suoraan sanottuna, hehe).
- l Rakentaa kestävä automatisoitu testaus: rakenna laajennettu osa tarkistuksesta, suorita ennalta määritellyt testisäännöt rakennuksen jälkeen ja laukaise ilmoituksia (sähköposti, RSS jne.) asianomaisille osapuolille suorituksen jälkeen.
- l Seuraavien prosessien automatisointi generoinnin jälkeen: Kun automaattiset tarkistukset ja testit suoritetaan onnistuneesti, ohjelmiston rakennussyklissä voi olla tarpeen lisätehtäviä, kuten dokumentaation tuottaminen, ohjelmiston pakkaaminen ja komponenttien käyttöönotto ajonaikaiseen tai ohjelmistovarastoon. Tämä mahdollistaa komponenttien nopeamman saatavuuden käyttäjille.
- CI-järjestelmän käyttöönottoon vaadittavina vähimmäisvaatimuksena ovat lähdekoodin varasto ja projekti, jossa on rakennusskriptit.
Seuraava kaavio tiivistää CI-järjestelmän perusrakenteen:
Järjestelmän osat toimivat seuraavassa järjestyksessä:
1. Kehittäjä tarkistaa koodin lähdekoodivarastoon.
2. CI-järjestelmä luo erillisen työtilan jokaiselle projektille. Kun uusi versio on esiasetettu tai pyydetty, se tallentaa lähdekoodin lähdekoodivarastosta vastaavaan työtilaan.
3. CI-järjestelmä suorittaa rakennusprosessin vastaavassa työtilassa.
4. (Jos konfiguraatio on olemassa) Kun rakennus on valmis, CI-järjestelmä suorittaa määritellyn joukon testejä uudessa artefaktissa. Lähetä ilmoitukset (sähköposti, RSS jne.) asianomaisille osapuolille suorituksen jälkeen.
5. (Konfiguraatio, jos sellainen on) Jos versio onnistuu, tämä artefakti pakataan ja siirretään käyttöönoton kohteeseen (esim. sovelluspalvelimelle) tai tallennetaan uutena versiona ohjelmistovarastoon. Ohjelmistovarasto voi olla osa CI-järjestelmää tai ulkoista tietovarastoa, kuten tiedostopalvelinta tai verkkosivustoa kuten Java.net, SourceForge jne.
6. CI-järjestelmä käynnistää yleensä vastaavia toimintoja pyyntöjen perusteella, kuten välittömät rakentamiset, raporttien tuottaminen tai rakennettujen artefaktien hakeminen.
Jenkins on yksi tällainen CI-järjestelmä. Aiemmin tunnettu nimellä Hudson.
Tässä muutamia syitä käyttää Jenkinsiä:
- l Se on helpoin asentaa ja konfiguroida kaikista CI-tuotteista.
- l Verkkopääsyn perusteella käyttöliittymä on erittäin ystävällinen, intuitiivinen ja joustava, ja monissa tapauksissa antaa välitöntä palautetta AJAXilta.
- l Jenkins on kehitetty Javalla (mikä on erittäin hyödyllistä, jos olet Java-kehittäjä), mutta se ei rajoitu pelkästään Java-pohjaisten ohjelmistojen rakentamiseen.
- l Jenkinsillä on suuri määrä lisäosia. Nämä lisäosat laajentavat Jenkinsin toiminnallisuutta huomattavasti; Ne ovat kaikki avoimen lähdekoodin, ja ne voidaan asentaa ja hallita suoraan verkkokäyttöliittymän kautta.
1.1 Jenkinsin tavoitteet Jenkinsin päätavoite on seurata ohjelmistokehitysprosessia ja paljastaa ongelmat nopeasti. Näin se voi varmistaa, että kehittäjät ja siihen liittyvät henkilöt säästävät aikaa ja vaivaa sekä parantavat kehityksen tehokkuutta.
CI-järjestelmän päärooli koko kehitysprosessin ajan on ohjaus: kun järjestelmä havaitsee muutoksen koodivarastossa, se delegoi buildin suorittamisen tehtävän itse rakennusprosessille. Jos rakennus epäonnistuu, CI-järjestelmä ilmoittaa asianomaiselle henkilölle ja jatkaa varaston seurantaa. Sen hahmot vaikuttavat passiivisilta; Mutta se heijastaa ongelmaa nopeasti.
Erityisesti sillä on seuraavat edut:
- l Jenkins Kaikki asetukset voidaan tehdä verkkokäyttöliittymässä. Jotkut asetukset, kuten MAVEN_HOME ja sähköposti, tarvitsee konfiguroida vain kerran, ja kaikki projektit ovat käytettävissä. Tietenkin sitä voi myös konfiguroida muokkaamalla XML:ää.
- l Maven-tukevat moduulit, Jenkins on optimoinut Mavenin, jotta moduulit tunnistavat automaattisesti, ja jokainen moduuli voidaan konfiguroida työksi. Melko joustava.
- l Testiraporttien kokoaminen, kaikkien moduulien testiraportit kootaan yhteen, ja tulokset ovat selkeät yhdellä silmäyksellä, käyttäen muita CI:itä, mikä on lähes mahdoton tehtävä.
- l Artifact fingerprint, jokaisen version tulos hallitaan hyvin automaattisesti, ja sitä voi helposti selata ja ladata ilman asetuksia.
|