Ondanks de toegenomen concurrentie blijft Jenkins een van de populairste continuous integration servers. Het is gemaakt tijdens de beruchte Hudson-community-splitsing, die plaatsvond nadat softwaregigant Oracle de controle over het open-sourced Hudson overnam in een beweging die de ontwikkelingsgemeenschap ontstak en het internet in vuur en vlam zette met verhit debat.
Het goede nieuws voor ontwikkelaars overal die geloven in het belang van het houden van open-sourced software uit de handen van grote bedrijven is dat in de daaropvolgende Hudson vs. Jenkins strijd, het Jenkins was dat aan het zegevieren was.
Een deel van de reden hierachter was het enorme aantal prachtige Jenkins plugins die zijn ontwikkeld door de Jenkins gemeenschap. Op dit moment heeft Jenkins meer dan 1.500 plugins die ontwikkelaars helpen grote delen van de projectontwikkeling te automatiseren. Deze plugins kunnen helpen bij taken variërend van het helpen bij continue levering, bestanden overbrengen van het ene project naar het andere, Jenkins-projecten weergeven in JIRA, enzovoort, enzovoort.
Omdat elk van deze plugins verschillende problemen oplost, is het geen gemakkelijke taak om de top Jenkins-plugins te kiezen. In plaats van controverses aan te wakkeren, wil ik in dit artikel een aantal van de nuttigste plugins beschrijven die ontwikkelaars helpen tijd te besparen en hun leven eenvoudiger te maken.
Om de aantrekkingskracht van dit artikel te verbreden, heb ik een mix van plugins gekozen, waarvan sommige individuele ontwikkelaars zullen aanspreken en andere nuttig zullen zijn voor grote ontwikkelteams.
- Job DSL
Een probleem dat veel ontwikkelaars die op Jenkins vertrouwen om aan meerdere jobs te werken zullen hebben ervaren, is dat ze elke nieuwe job die ze starten herhaaldelijk moeten configureren. Dit is niet alleen erg tijdrovend (als je bedenkt dat veel fulltime programmeurs aan honderden jobs per jaar werken), maar kan hun werk ook erg eentonig maken.
De Jenkins Job DSL plugin stelt programmeurs in staat om Groovy te gebruiken om jobs te definiëren en een gemeenschappelijke set items voor hen te configureren. De plugin onderhoudt vervolgens deze scripts en werkt job informatie automatisch bij. Dit stelt programmeurs in staat om gestandaardiseerde templates te maken met behulp van de Domain Specific Language (DSL), waardoor het opzetten van nieuwe projecten een koud kunstje wordt.
2. Job Generator Plugin
Voor projectmanagers en dev teams die betrokken zijn bij grootschalige projectontwikkeling, kan het bijhouden van de voortgang van jobs op zijn best een nachtmerrie zijn. Met de Jenkins Job Generator plugin kunnen projectmanagers die verantwoordelijk zijn voor een bepaalde Jenkins pijplijn, ontwikkelaars in hun team machtigen om nieuwe jobsjablonen te maken die vervolgens kunnen worden gebruikt om nieuwe projecten/takken van ontwikkeling te starten.
Hoewel het ook mogelijk is om dit handmatig te doen, kan deze taak opnieuw zeer tijdrovend zijn, vooral als uw project meerdere pijplijnen heeft. Het voordeel van de Job Generator Plugin boven de Job DSL plugin hierboven is dat het niet vereist dat programmeurs Groovy kennen.
3. Performance Plugin
Dit is een echt cool gereedschap voor ontwikkelaars om mee te spelen. Het stelt ontwikkelaars in staat om rapporten vast te leggen van een hele reeks testtools, waaronder JUnit, JMeter, Twitter’s Lago en Taurus. Je kunt de informatie over de prestaties van je project in Jenkins bekijken via grafieken en diagrammen. Dit is een geweldig voorbeeld van een top Jenkins grafiek plugin.
4. GitHub/GitLab Pull Request Builder
Deze zeer populaire Git plugin voor Jenkins stelt ontwikkelaars in staat om eenvoudig code review te automatiseren. Bij het initiëren van een pull request, zal de plugin de bron en build resultaten ophalen, zodat ontwikkelaars snel kunnen zien of hun code goed is.
Deze geweldige plugin stelt ontwikkelaars ook in staat om automatische samenvoeging te initiëren, op voorwaarde dat de code de review doorstaat.
5. JIRA Plugin
Uitgebracht in december 2016, de JIRA plugin doet vrij veel wat het zegt op het blik. Het stelt ontwikkelaars in staat om JIRA te integreren in Jenkins. Veel ontwikkelingsteams gebruiken JIRA vrij veel, dus in staat zijn om Jenkins te bekijken via JIRA helpt bij het stroomlijnen van het ontwikkelingsproces.
6. Kubernetes Plugin
Voor die dev teams die meerdere projecten tegelijk draaien, kan Jenkins soms frustrerend zijn omdat het niet echt grote server schaalbaarheid biedt. Dit probleem wordt opgelost door de Kubernetes Plugin die het mogelijk maakt voor ontwikkelaars die Kubernetes gebruiken om het schaalproces te automatiseren van het draaien van Jenkins slaves in de Kubernetes omgeving.
Voor die ontwikkelaars die Docker Swarm gebruiken dan zal Jenkins Self-Organizing Swarm Modules Plugin u in staat stellen om schaalbaarheid toe te voegen aan Jenkins op dezelfde manier. Eenmaal geïnstalleerd, laten beide versies u verder gaan met uw Jenkins job zonder zorgen te maken over schaalbaarheidsproblemen.
7. Build Pipeline plugin
Hoewel continue integratie een geweldige manier is om projecten te ontwikkelen, werpt het ook een aantal uitdagingen op. Het bijhouden van alle aspecten van de voortgang van jobs, inclusief kwaliteitsborging, kan een hele uitdaging zijn wanneer je te maken hebt met complexe meerlagige projecten.
Jenkins Build Pipeline plugin stelt projectmanagers in staat om een keten van verbonden jobs te maken, zodat ze een veel duidelijker beeld krijgen van alle stadia van de projectpijplijn. Met de plugin kunnen managers beslissen welke stappen geautomatiseerd kunnen worden of handmatige tussenkomst vereisen. Met deze prachtige plugin kunnen ontwikkelaars echt de volledige controle over hun projecten nemen, en daarom wordt hij door zoveel software ontwikkelteams gebruikt.
8. SCM Sync Configuration Plugin
Verloren configuratiegegevens heeft menig projectmanager ’s nachts wakker gehouden. Het kost niet alleen tijd om het op te lossen, maar het is ook volledig te voorkomen. Op dezelfde manier als code gebackupped kan worden naar repositories, kan dat met behulp van deze handige plugin ook met Jenkins configuratie bestanden.
Deze SCM Sync Configuration Plugin zorgt voor een geautomatiseerde config file backup naar een SCM repository. Niet alleen dat, maar deze plugin zal ook bijhouden alle wijzigingen waardoor managers een duidelijk beeld van alle wijzigingen. Het is een populaire Jenkins backup tool die de toolbox van elke Jenkins ontwikkelaar zou moeten bevatten.
9. Jenkins Maven plugin
Maven is zeer geliefd voor het bieden van een eenvoudig te gebruiken standaard project build lay-out. Dit helpt ontwikkelaars tijd te besparen bij de start van projecten door hen in staat te stellen direct in het diepe te springen en zich geen zorgen te hoeven maken over dit aspect van het vertrouwd raken met het project.
Deze plugin laat Jenkins Maven builds monitoren om automatische archivering van rapporten mogelijk te maken en te helpen met parallelle of incrementele module builds etc. Het is eenvoudig op te zetten en vereist niet veel in de manier van Jenkins configuratie.
10 . Jenkins Subversion plugin
Met een groot aantal ontwikkelaars die nog steeds Apache Subversion gebruiken, was er een overweldigende behoefte aan een Jenkins plugin om de twee te integreren. Deze plugin zal veranderingen monitoren en nieuwe builds triggeren als en wanneer dat nodig is, evenals het automatisch updaten van de werkruimte zodat deze klaar is om de nieuwe build te starten.