Jenkins on edelleen yksi suosituimmista jatkuvan integroinnin palvelimista, vaikka se kohtaa kasvavaa kilpailua. Se luotiin surullisenkuuluisan Hudson-yhteisön hajaannuksen aikana, joka tapahtui sen jälkeen, kun ohjelmistojätti Oracle otti haltuunsa avoimen lähdekoodin Hudsonin siirrolla, joka sytytti kehitysyhteisön tuleen ja sai internetin syttymään kiivaasta keskustelusta.
Hyvä uutinen kaikille kehittäjille, jotka uskovat siihen, että on tärkeää pitää avoimen lähdekoodin ohjelmistot poissa suuryritysten käsistä, on se, että myöhemmässä Hudson vs. Jenkins -taistelussa voittajaksi selviytyi Jenkins.
Osasyynä tähän oli Jenkins-yhteisössä kehitettyjen loistavien Jenkins-liitännäisten valtava määrä. Tällä hetkellä Jenkinsillä on yli 1 500 liitännäistä, jotka auttavat kehittäjiä automatisoimaan suuria osia projektikehityksestä. Nämä liitännäiset voivat auttaa tehtävissä, jotka vaihtelevat jatkuvassa toimituksessa auttamisesta, tiedostojen siirtämisestä projektista toiseen, Jenkins-projektien näyttämisestä JIRA:ssa ja niin edelleen ja niin edelleen.
Koska jokainen näistä liitännäisistä ratkaisee erilaisia ongelmia, ei ole helppo tehtävä valita parhaita Jenkins-liitännäisiä. Sen sijaan, että herättäisin kiistoja, pyrin siis tässä artikkelissa kuvaamaan yksityiskohtaisesti joitakin hyödyllisimpiä liitännäisiä, jotka auttavat kehittäjiä säästämään aikaa sekä helpottamaan heidän elämäänsä.
Laajentaakseni tämän artikkelin kiinnostavuutta olen valinnut yhdistelmän liitännäisiä, joista osa miellyttää yksittäisiä kehittäjiä ja osa on hyödyllisiä suurille kehitystiimeille.
- Job DSL
Ongelma, jonka monet kehittäjät, jotka luottavat Jenkinsiin työskennellessään useiden töiden parissa, ovat varmasti kokeneet, on se, että he joutuvat konfiguroimaan toistuvasti jokaisen aloittamansa uuden työn. Tämä ei ole vain hyvin aikaa vievää (kun otetaan huomioon, että monet kokopäiväiset ohjelmoijat työskentelevät satojen töiden parissa vuodessa), vaan se voi myös todella saada työn tuntumaan yksitoikkoiselta.
Jenkinsin Job DSL -laajennus antaa ohjelmoijille mahdollisuuden käyttää Groovya töiden määrittelyyn ja konfiguroida niille yhteiset kohteet. Lisäosa ylläpitää sitten näitä skriptejä ja päivittää työn tiedot automaattisesti. Näin ohjelmoijat voivat luoda standardoituja malleja käyttämällä DSL-kieltä (Domain Specific Language), mikä tekee uusien projektien perustamisesta helppoa.
2. Job Generator -liitännäinen
Projektipäälliköille ja kehitysryhmille, jotka osallistuvat laajamittaiseen projektikehitykseen, töiden etenemisen seuraaminen voi parhaimmillaan olla painajainen. Jenkins Job Generator -pluginin avulla tietyn Jenkins-putken vastuulliset projektipäälliköt voivat valtuuttaa tiiminsä kehittäjät luomaan uusia työmalleja, joita voidaan sitten käyttää uusien projektien/kehityshaarojen käynnistämiseen.
Vaikka tämä on mahdollista tehdä manuaalisesti, jälleen kerran tämäkin tehtävä voi olla hyvin aikaa vievä, varsinkin jos projektissasi on useita putkia. Job Generator -liitännäisen etuna yllä olevaan Job DSL -liitännäiseen verrattuna on se, että se ei vaadi ohjelmoijilta Groovyn osaamista.
3. Performance Plugin
Tämä on todella hieno työkalu kehittäjille. Sen avulla kehittäjät voivat kaapata raportteja koko joukosta testaustyökaluja, joihin kuuluvat JUnit, JMeter, Twitterin Lago ja Taurus. Voit tarkastella projektisi suorituskykyä koskevia tietoja Jenkinsissä kaavioiden ja graafien avulla. Tämä on loistava esimerkki huippuluokan Jenkins-grafiikkaliitännäisestä.
4. GitHub/GitLab Pull Request Builder
Tämän erittäin suositun Git-liitännäisen avulla Jenkinsin kehittäjät voivat helposti automatisoida koodin tarkistuksen. Kun aloitat pull requestin, plugin hakee lähdekoodin ja build-tulokset, jotta kehittäjät näkevät nopeasti, onko heidän koodinsa oikein.
Tämän loistavan pluginin avulla kehittäjät voivat myös aloittaa automaattisen yhdistämisen edellyttäen, että koodi läpäisee tarkistuksen.
5. JIRA-liitännäinen
Joulukuussa 2016 julkaistu JIRA-liitännäinen tekee pitkälti sen, mitä purkissa lukee. Sen avulla kehittäjät voivat integroida JIRAn Jenkinsiin. Monet kehitystiimit käyttävät JIRAa melko paljon, joten mahdollisuus tarkastella Jenkinsiä JIRAn kautta auttaa virtaviivaistamaan kehitysprosessia.
6. Kubernetes Plugin
Sille kehitystiimeille, jotka pyörittävät useita projekteja samanaikaisesti, Jenkins voi olla toisinaan turhauttava, koska se ei tarjoa suurta palvelimen skaalautuvuutta. Tämän ongelman ratkaisee Kubernetes Plugin, jonka avulla ne kehittäjät, jotka käyttävät Kubernetesia, voivat automatisoida skaalautumisprosessin, kun Jenkinsin orjia ajetaan Kubernetes-ympäristössä.
Sille kehittäjille, jotka käyttävät Docker Swarmia, niin Jenkins Self-Organizing Swarm Modules Plugin mahdollistaa skaalautuvuuden lisäämisen Jenkinsiin samalla tavalla. Kun olet asentanut molemmat versiot, voit jatkaa Jenkins-työtäsi ilman, että sinun tarvitsee huolehtia skaalautuvuusongelmista.
7. Build Pipeline -plugin
Vaikka jatkuva integraatio on loistava tapa kehittää projekteja, se tuo mukanaan myös monia haasteita. Työn etenemisen kaikkien osa-alueiden seuraaminen, mukaan lukien laadunvarmistus, voi olla melkoinen haaste, kun on kyse monimutkaisista monikerroksisista projekteista.
Jenkinsin Build Pipeline -lisäosan avulla projektipäälliköt voivat luoda toisiinsa kytkettyjen töiden ketjun, jolloin he saavat paljon selkeämmän kuvan projektin kaikista vaiheista. Lisäosan avulla johtajat voivat päättää, mitkä vaiheet voidaan automatisoida vai vaativatko ne manuaalista puuttumista. Tämän erinomaisen laajennuksen avulla kehittäjät voivat todella ottaa projektinsa täysin haltuunsa, minkä vuoksi sitä käyttävät niin monet ohjelmistokehitystiimit.
8. SCM Sync Configuration Plugin
Kadonneet konfiguraatiotiedot ovat pitäneet monet projektipäälliköt hereillä öisin. Sen lisäksi, että sen korjaaminen vie aikaa, se on myös täysin estettävissä. Samalla tavalla kuin koodi voidaan varmuuskopioida arkistoihin, myös Jenkinsin konfiguraatiotiedostot voidaan varmuuskopioida tämän kätevän lisäosan avulla.
Tämä SCM Sync Configuration Plugin mahdollistaa konfiguraatiotiedostojen automaattisen varmuuskopioinnin SCM-arkistoon. Sen lisäksi tämä lisäosa myös seuraa kaikkia muutoksia antaen näin johtajille selkeän näkymän kaikista muutoksista. Se on suosittu Jenkinsin varmuuskopiointityökalu, joka jokaisen Jenkins-kehittäjän työkalupakin tulisi sisältää.
9. Jenkinsin Maven-lisäosa
Mavenia rakastetaan paljon sen vuoksi, että se tarjoaa helppokäyttöisen standardiprojektin rakentamisasettelun. Tämä auttaa kehittäjiä säästämään aikaa projektien alussa, kun he voivat hypätä suoraan syvään päähän eikä heidän tarvitse huolehtia tästä osa-alueesta, joka liittyy projektiin perehtymiseen.
Tämän laajennuksen avulla Jenkins voi valvoa Maven-rakentamista, jotta raporttien automaattinen arkistointi on mahdollista ja se auttaa rinnakkaisissa tai inkrementaalisissa moduulirakentamisissa jne. Se on helppo ottaa käyttöön, eikä se vaadi juurikaan Jenkinsin konfigurointia.
10 . Jenkinsin Subversion-liitännäinen
Koska valtava määrä kehittäjiä käyttää edelleen Apache Subversionia, Jenkinsin liitännäiselle näiden kahden integroimiseksi oli ylivoimainen tarve. Tämä lisäosa seuraa muutoksia ja käynnistää uudet buildit tarvittaessa sekä päivittää työtilan automaattisesti, jotta se on valmis aloittamaan uuden buildin.