På trods af den øgede konkurrence er Jenkins fortsat en af de mest populære servere til kontinuerlig integration. Den blev skabt under den berygtede Hudson-fællesskabssplittelse, der opstod, efter at softwaregiganten Oracle overtog kontrollen med det open source-baserede Hudson i et træk, der betændte udviklingsfællesskabet og satte internettet i brand med ophedet debat.
Den gode nyhed for udviklere overalt, der tror på vigtigheden af at holde software med åben kildekode ude af hænderne på store virksomheder, er, at i den efterfølgende kamp mellem Hudson og Jenkins var det Jenkins, der sejrede.
En del af årsagen til dette var det store antal fremragende Jenkins-plugins, der er blevet udviklet af Jenkins-fællesskabet. På nuværende tidspunkt har Jenkins mere end 1.500 plugins, der hjælper udviklere med at automatisere store dele af projektudviklingen. Disse plugins kan hjælpe med opgaver lige fra at hjælpe med kontinuerlig levering, overføre filer fra et projekt til et andet, vise Jenkins-projekter i JIRA og så videre og så videre.
Da hvert af disse plugins løser forskellige problemer, er det ikke en nem opgave at vælge de bedste Jenkins-plugins. Så i stedet for at skabe kontroverser har jeg i denne artikel til formål at beskrive nogle af de mest nyttige plugins, der hjælper udviklere med at spare tid samt gøre deres liv lettere.
For at udvide denne artikels appel har jeg valgt en blanding af plugins, hvoraf nogle vil appellere til individuelle udviklere, og andre vil være nyttige for store udviklerteams.
- Job DSL
Et problem, som mange udviklere, der er afhængige af Jenkins til at arbejde på flere job, vil have oplevet, er at skulle konfigurere gentagne gange for hvert nyt job, de starter. Dette er ikke kun meget tidskrævende (i betragtning af at mange fuldtidsprogrammerere arbejder på 100-vis af jobs om året), men kan også virkelig gøre deres arbejde monotont.
Jenkins Job DSL-plugin giver programmører mulighed for at bruge Groovy til at definere jobs og konfigurere et fælles sæt af elementer for dem. Plugin’et vedligeholder derefter disse scripts og opdaterer joboplysninger automatisk. Dette giver programmører mulighed for at oprette standardiserede skabeloner ved hjælp af det domænespecifikke sprog (DSL), hvilket gør opsætning af nye projekter til en leg.
2. Job Generator Plugin
For projektledere og dev-teams, der er involveret i udvikling af projekter i stor skala, kan det i bedste fald være et mareridt at holde styr på jobforløbet. Jenkins Job Generator-plugin giver projektledere med ansvar for en bestemt Jenkins-pipeline mulighed for at give udviklere i deres team tilladelse til at oprette nye jobskabeloner, som derefter kan bruges til at starte nye projekter/udviklingsgrene.
Selv om det er muligt at gøre dette manuelt, kan denne opgave endnu en gang være meget tidskrævende, især hvis dit projekt har flere pipelines. Fordelen ved Job Generator Plugin i forhold til Job DSL-plugin’et ovenfor er, at det ikke kræver, at programmører kender Groovy.
3. Performance Plugin
Dette er et rigtig fedt værktøj, som udviklere kan lege med. Det giver udviklere mulighed for at indfange rapporter fra en lang række testværktøjer, der omfatter JUnit, JMeter, Twitter’s Lago og Taurus. Du kan se oplysningerne om dit projekts ydeevne i Jenkins via diagrammer og grafer. Dette er et godt eksempel på et top Jenkins graf-plugin.
4. GitHub/GitLab Pull Request Builder
Dette meget populære Git-plugin til Jenkins giver udviklere mulighed for nemt at automatisere kodegennemgang. Ved initiering af en pull request henter plugin’et kildekoden og build-resultaterne, så udviklere hurtigt kan se, om deres kode er rigtig.
Dette fantastiske plugin giver også udviklere mulighed for at initiere automatisk sammenlægning, forudsat at koden består gennemgangen.
5. JIRA-plugin
JIRA-plugin, der blev udgivet i december 2016, gør stort set, hvad der står på dåsen. Det giver udviklere mulighed for at integrere JIRA i Jenkins. Mange udviklingsteams bruger JIRA ret meget, så det er med til at strømline udviklingsprocessen at kunne se Jenkins gennem JIRA.
6. Kubernetes Plugin
For de udviklerteams, der kører flere projekter på samme tid, kan Jenkins til tider være frustrerende, fordi det ikke rigtig tilbyder stor serverskaleringsevne. Dette problem er løst af Kubernetes Plugin, der giver de udviklere, der bruger Kubernetes, mulighed for at automatisere skaleringsprocessen for at køre Jenkins-slaver i Kubernetes-miljøet.
For de udviklere, der bruger Docker Swarm, så vil Jenkins Self-Organizing Swarm Modules Plugin give dig mulighed for at tilføje skalerbarhed til Jenkins på samme måde. Når de er installeret, vil begge versioner lade dig komme videre med dit Jenkins-job uden at skulle bekymre dig om problemer med skalerbarhed.
7. Build Pipeline plugin
Selv om kontinuerlig integration er en fantastisk måde at udvikle projekter på, så giver det også en række udfordringer. Det kan være noget af en udfordring at holde styr på alle aspekter af jobfremskridt, herunder kvalitetssikring, når der er tale om komplekse projekter i flere lag.
Jenkins Build Pipeline plugin gør det muligt for projektledere at oprette en kæde af forbundne jobs, så de kan få et meget klarere billede af alle faser af projektets pipeline. Plugin’et giver lederne mulighed for at beslutte, hvilke trin der kan automatiseres eller kræver manuel indgriben. Dette fremragende plugin giver virkelig udviklere mulighed for at tage fuld kontrol over deres projekter, hvilket er grunden til, at det bruges af så mange softwareudviklingsteams.
8. SCM Sync Configuration Plugin
Glemte konfigurationsdata har holdt mange projektledere vågen om natten. Ikke alene tager det tid at rette op på det, men det kan også helt forebygges. På samme måde som kode kan sikkerhedskopieres til repositorier, kan Jenkins-konfigurationsfiler også blive det ved hjælp af dette praktiske plugin.
Dette SCM Sync Configuration Plugin giver mulighed for automatiseret backup af konfigurationsfiler til et SCM-repositorie. Ikke kun det, men dette plugin vil også spore alle ændringer og dermed give ledere et klart overblik over eventuelle ændringer. Det er et populært Jenkins-backupværktøj, som enhver Jenkins-udvikler bør have i sin værktøjskasse.
9. Jenkins Maven-plugin
Maven er meget elsket for at levere et letanvendeligt standardprojektopbygningslayout. Dette hjælper udviklere med at spare tid i starten af projekter ved at give dem mulighed for at hoppe direkte i dybden og ikke at skulle bekymre sig om dette aspekt af at gøre sig bekendt med projektet.
Dette plugin lader Jenkins overvåge Maven builds for at muliggøre automatisk arkivering af rapporter og hjælpe med parallelle eller inkrementelle modul builds osv. Det er nemt at opsætte og kræver ikke meget i form af Jenkins-konfiguration.
10 . Jenkins Subversion-plugin
Med et stort antal udviklere, der stadig bruger Apache Subversion, var der et overvældende behov for et Jenkins-plugin til at integrere de to. Dette plugin vil overvåge ændringer og udløse nye builds efter behov samt automatisk opdatere arbejdsområdet, så det er klar til at starte det nye build.