Trots ökad konkurrens är Jenkins fortfarande en av de mest populära servrarna för kontinuerlig integration. Den skapades under den beryktade Hudson community split som inträffade efter att mjukvarujätten Oracle tog kontroll över det öppna Hudson i ett drag som inflammerade utvecklingsgemenskapen och satte internet i brand i en hetsig debatt.
De goda nyheterna för utvecklare överallt som tror på vikten av att hålla programvara med öppen källkod utanför storföretagens händer är att i den efterföljande striden mellan Hudson och Jenkins var det Jenkins som segrade.
En del av orsaken till detta var det stora antalet fantastiska Jenkins-plugins som utvecklats av Jenkins-communityt. I dagsläget har Jenkins mer än 1 500 plugins som hjälper utvecklare att automatisera stora delar av projektutvecklingen. Dessa plugins kan hjälpa till med allt från att hjälpa till med kontinuerlig leverans, överföra filer från ett projekt till ett annat, visa Jenkins-projekt i JIRA, och så vidare, och så vidare.
Då var och en av dessa plugins löser olika problem är det inte en lätt uppgift att välja de bästa Jenkins-plugins. Så i stället för att väcka kontroverser vill jag i den här artikeln beskriva några av de mest användbara plugins som hjälper utvecklare att spara tid samt göra deras liv enklare.
För att bredda överklagandet av den här artikeln har jag valt en blandning av plugins, varav en del kommer att tilltala enskilda utvecklare och andra som kommer att vara användbara för stora utvecklingsteam.
- Job DSL
Ett problem som många utvecklare som förlitar sig på Jenkins för att arbeta med flera jobb kommer att ha upplevt är att de måste konfigurera upprepade gånger för varje nytt jobb de startar. Detta är inte bara mycket tidskrävande (med tanke på att många heltidsprogrammerare arbetar med 100-tals jobb per år), utan kan också verkligen få deras jobb att kännas monotont också.
Jenkins Job DSL-plugin gör det möjligt för programmerare att använda Groovy för att definiera jobb och konfigurera en gemensam uppsättning objekt för dem. Pluginet underhåller sedan dessa skript och uppdaterar jobbinformationen automatiskt. Detta gör det möjligt för programmerare att skapa standardiserade mallar med hjälp av det domänspecifika språket (DSL), vilket gör det enkelt att sätta upp nya projekt.
2. Job Generator Plugin
För projektledare och dev-team som är involverade i storskalig projektutveckling kan det i bästa fall vara en mardröm att hålla reda på jobbets utveckling. Jenkins Job Generator-plugin gör det möjligt för projektledare som ansvarar för en viss Jenkins-pipeline att auktorisera utvecklare i sitt team att skapa nya jobbmallar som sedan kan användas för att starta nya projekt/utvecklingsgrenar.
Samtidigt som det är möjligt att göra detta manuellt kan denna uppgift återigen vara mycket tidskrävande, särskilt om ditt projekt har flera pipelines. Fördelen med Job Generator Plugin jämfört med Job DSL-plugin ovan är att det inte kräver att programmerare kan Groovy.
3. Performance Plugin
Detta är ett riktigt coolt verktyg för utvecklare att leka med. Det gör det möjligt för utvecklare att fånga upp rapporter från en hel rad testverktyg som inkluderar JUnit, JMeter, Twitters Lago och Taurus. Du kan visa informationen om ditt projekts prestanda i Jenkins via diagram och grafer. Det här är ett bra exempel på ett topp-plugin för grafer i Jenkins.
4. GitHub/GitLab Pull Request Builder
Detta mycket populära Git-plugin för Jenkins gör det möjligt för utvecklare att enkelt automatisera kodgranskning. När en pull request initieras hämtar insticksmodulen källkoden och byggresultaten så att utvecklare snabbt kan se om deras kod är rätt.
Denna fantastiska insticksmodul gör det också möjligt för utvecklare att initiera automatisk sammanslagning förutsatt att koden klarar granskningen.
5. JIRA-plugin
JIRA-plugin släpptes i december 2016 och gör i stort sett vad det står på plåten. Den gör det möjligt för utvecklare att integrera JIRA i Jenkins. Många utvecklingsteam använder JIRA ganska mycket, så att kunna visa Jenkins via JIRA hjälper till att effektivisera utvecklingsprocessen.
6. Kubernetes Plugin
För de utvecklingsteam som kör flera projekt samtidigt kan Jenkins ibland vara frustrerande eftersom det inte riktigt erbjuder stor skalbarhet för servrar. Detta problem löses av Kubernetes Plugin som gör det möjligt för de utvecklare som använder Kubernetes att automatisera skalningsprocessen för att köra Jenkins-slavar i Kubernetes-miljön.
För de utvecklare som använder Docker Swarm så kommer Jenkins Self-Organizing Swarm Modules Plugin att göra det möjligt för dig att lägga till skalbarhet till Jenkins på samma sätt. När de väl är installerade låter båda versionerna dig fortsätta med ditt Jenkins-jobb utan att behöva oroa dig för skalbarhetsproblem.
7. Build Pipeline plugin
Samtidigt som kontinuerlig integration är ett utmärkt sätt att utveckla projekt, ger det också upphov till ett antal utmaningar också. Att hålla koll på alla aspekter av jobbutveckling inklusive kvalitetssäkring kan vara en utmaning när man har att göra med komplexa projekt med flera lager.
Jenkins Build Pipeline plugin gör det möjligt för projektledare att skapa en kedja av sammankopplade jobb så att de kan få en mycket tydligare bild av alla stadier i projektpipelinen. Pluginet gör det möjligt för cheferna att bestämma vilka steg som kan automatiseras eller kräver manuellt ingripande. Detta fantastiska plugin låter verkligen utvecklare ta full kontroll över sina projekt, vilket är anledningen till att det används av så många mjukvaruutvecklingsteam.
8. SCM Sync Configuration Plugin
Förlorade konfigurationsdata har hållit många projektledare vakna om nätterna. Det tar inte bara tid att rätta till det utan kan också helt och hållet förebyggas. På samma sätt som kod kan säkerhetskopieras till repositories kan Jenkins-konfigurationsfiler också göra det med hjälp av det här praktiska insticksprogrammet.
Detta SCM Sync Configuration Plugin möjliggör automatiserad säkerhetskopiering av konfigurationsfiler till ett SCM-repository. Inte bara det, utan det här insticksprogrammet kommer också att spåra alla ändringar och därmed ge cheferna en tydlig bild av alla ändringar. Det är ett populärt Jenkins-backupverktyg som alla Jenkins-utvecklare bör ha i sin verktygslåda.
9. Jenkins Maven-plugin
Maven är mycket omtyckt för att tillhandahålla en lättanvänd standardlayout för projektbygge. Detta hjälper utvecklare att spara tid i början av projekt genom att de kan hoppa rakt in på djupet och inte behöva oroa sig för denna aspekt av att bekanta sig med projektet.
Detta insticksprogram låter Jenkins övervaka Maven-byggen för att möjliggöra automatisk arkivering av rapporter och hjälpa till med parallella eller inkrementella modulbyggen etc. Det är lätt att installera och kräver inte mycket i form av Jenkins-konfiguration.
10 . Jenkins Subversion-plugin
Med tanke på att ett stort antal utvecklare fortfarande använder Apache Subversion fanns det ett överväldigande behov av ett Jenkins-plugin för att integrera de två. Detta plugin kommer att övervaka ändringar och utlösa nya byggen vid behov samt automatiskt uppdatera arbetsutrymmet så att det är redo att starta det nya bygget.