Nonostante la crescente concorrenza, Jenkins rimane uno dei server di integrazione continua più popolari. È stato creato durante la famigerata divisione della comunità Hudson che si è verificata dopo che il gigante del software Oracle ha preso il controllo di Hudson open-sourced in una mossa che ha infiammato la comunità di sviluppo e incendiato internet con un acceso dibattito.
La buona notizia per gli sviluppatori di tutto il mondo che credono nell’importanza di mantenere il software open-source fuori dalle mani delle grandi aziende è che nella successiva battaglia Hudson vs. Jenkins, è stato Jenkins a vincere.
Parte della ragione dietro questo è stato il numero di superbi plugin Jenkins che sono stati sviluppati dalla comunità Jenkins. Al momento, Jenkins ha più di 1.500 plugin che aiutano gli sviluppatori ad automatizzare grandi parti dello sviluppo del progetto. Questi plugin possono aiutare con compiti che vanno dall’aiutare con la consegna continua, trasferire file da un progetto all’altro, visualizzare i progetti Jenkins in JIRA, e così via, e così via.
Siccome ognuno di questi plugin risolve problemi diversi, non è un compito facile scegliere i migliori plugin Jenkins. Quindi, piuttosto che suscitare polemiche, in questo articolo, mi propongo di dettagliare alcuni dei plugin più utili che aiutano gli sviluppatori a risparmiare tempo e a rendere la loro vita più facile.
Al fine di ampliare l’appeal di questo articolo, ho scelto un mix di plugin, alcuni dei quali piaceranno ai singoli sviluppatori e altri che saranno utili ai grandi team di sviluppo.
- Job DSL
Un problema che molti sviluppatori che si affidano a Jenkins per lavorare su più lavori avranno sperimentato è dover configurare ripetutamente ogni nuovo lavoro che iniziano. Questo non solo richiede molto tempo (considerando che molti programmatori a tempo pieno lavorano su 100 lavori all’anno), ma può anche rendere il loro lavoro monotono.
Il plugin Job DSL di Jenkins permette ai programmatori di usare Groovy per definire i lavori e configurare un insieme comune di elementi per essi. Il plugin poi mantiene questi script e aggiorna automaticamente le informazioni sul lavoro. Questo permette ai programmatori di creare modelli standardizzati usando il Domain Specific Language (DSL), che rende la creazione di nuovi progetti un gioco da ragazzi.
2. Job Generator Plugin
Per i project manager e i team di sviluppo che sono coinvolti nello sviluppo di progetti su larga scala, tenere traccia dei progressi dei lavori può essere un incubo nel migliore dei casi. Il plugin Jenkins Job Generator permette ai project manager responsabili di una particolare pipeline Jenkins di autorizzare gli sviluppatori del loro team a creare nuovi modelli di lavoro che possono poi essere utilizzati per avviare nuovi progetti/rami di sviluppo.
Mentre è possibile fare questo manualmente, ancora una volta questo compito può richiedere molto tempo, soprattutto se il progetto ha più pipeline. Il vantaggio del plugin Job Generator rispetto al plugin Job DSL di cui sopra è che non richiede che i programmatori conoscano Groovy.
3. Performance Plugin
Questo è uno strumento davvero interessante con cui gli sviluppatori possono giocare. Permette agli sviluppatori di catturare rapporti da un’intera gamma di strumenti di test che includono JUnit, JMeter, Twitter’s Lago e Taurus. È possibile visualizzare le informazioni riguardanti le prestazioni del vostro progetto in Jenkins tramite grafici e diagrammi. Questo è un grande esempio di un top plugin grafico per Jenkins.
4. GitHub/GitLab Pull Request Builder
Questo plugin Git molto popolare per Jenkins permette agli sviluppatori di automatizzare facilmente la revisione del codice. All’avvio di una richiesta di pull, il plugin recupererà il sorgente e i risultati della compilazione in modo che gli sviluppatori possano vedere rapidamente se il loro codice è giusto.
Questo grande plugin permette anche agli sviluppatori di avviare il merging automatico a condizione che il codice passi la revisione.
5. JIRA Plugin
Rilasciato nel dicembre 2016, il plugin JIRA fa praticamente quello che dice sulla scatola. Permette agli sviluppatori di integrare JIRA in Jenkins. Molti team di sviluppo usano JIRA abbastanza spesso, quindi essere in grado di visualizzare Jenkins attraverso JIRA aiuta a semplificare il processo di sviluppo.
6. Kubernetes Plugin
Per quei team di sviluppo che stanno eseguendo più progetti allo stesso tempo, Jenkins può essere frustrante a volte perché non offre una grande scalabilità del server. Questo problema è risolto dal plugin Kubernetes che permette agli sviluppatori che usano Kubernetes di automatizzare il processo di scalabilità dell’esecuzione degli slave di Jenkins nell’ambiente Kubernetes.
Per gli sviluppatori che usano Docker Swarm, Jenkins Self-Organizing Swarm Modules Plugin vi permetterà di aggiungere scalabilità a Jenkins nello stesso modo. Una volta installate, entrambe le versioni vi permetteranno di continuare il vostro lavoro con Jenkins senza dovervi preoccupare dei problemi di scalabilità.
7. Build Pipeline plugin
Mentre l’integrazione continua è un ottimo modo per sviluppare progetti, presenta anche una serie di sfide. Tenere traccia di tutti gli aspetti della progressione del lavoro, compresa la garanzia di qualità, può essere una bella sfida quando si ha a che fare con progetti complessi a più livelli.
Il plugin Build Pipeline di Jenkins permette ai project manager di creare una catena di lavori collegati in modo da poter avere un quadro molto più chiaro di tutte le fasi della pipeline del progetto. Il plugin permette ai manager di decidere quali fasi possono essere automatizzate o richiedono un intervento manuale. Questo superbo plugin permette davvero agli sviluppatori di avere il pieno controllo dei loro progetti, ed è il motivo per cui è usato da così tanti team di sviluppo software.
8. SCM Sync Configuration Plugin
I dati di configurazione persi hanno tenuto molti project manager svegli di notte. Non solo ci vuole tempo per rimediare, ma è anche completamente prevenibile. Nello stesso modo in cui si può fare il backup del codice nei repository, con l’aiuto di questo comodo plugin, anche i file di configurazione di Jenkins possono esserlo.
Questo SCM Sync Configuration Plugin permette il backup automatico dei file di configurazione in un repository SCM. Non solo, ma questo plugin terrà anche traccia di tutte le modifiche dando così ai manager una chiara visione di qualsiasi alterazione. È un popolare strumento di backup di Jenkins che ogni sviluppatore di Jenkins dovrebbe contenere.
9. Jenkins Maven plugin
Maven è molto amato per fornire un layout standard di build del progetto facile da usare. Questo aiuta gli sviluppatori a risparmiare tempo all’inizio dei progetti, permettendo loro di saltare direttamente in profondità e non doversi preoccupare di questo aspetto della familiarizzazione con il progetto.
Questo plugin permette a Jenkins di monitorare le build di Maven per permettere l’archiviazione automatica dei rapporti e aiutare con build parallele o incrementali dei moduli, ecc. È facile da impostare e non richiede molto in termini di configurazione di Jenkins.
10 . Jenkins Subversion plugin
Con un enorme numero di sviluppatori che usano ancora Apache Subversion, c’era un enorme bisogno di un plugin Jenkins per integrare i due. Questo plugin monitorerà i cambiamenti e attiverà nuove build come e quando richiesto, oltre ad aggiornare automaticamente lo spazio di lavoro in modo che sia pronto per iniziare la nuova build.