Jenkins: tutorial per lo strumento di CI

Se volete utilizzare la metodologia agile Continuous Integration (CI) nel vostro team, dovreste affidarvi a uno strumento di CI semplice ma potente. Jenkins è un'ottima soluzione. Questo software open source vi offre moltissime possibilità per rendere più efficiente il processo di integrazione continua, soprattutto grazie ai plug-in.

Jenkins è basato su Java e può quindi essere utilizzato su tutte le piattaforme. Poiché il software viene fornito insieme a Winston, un middleware servlet, non c'è bisogno di server aggiuntivi, come Tomcat. Per ottenere il massimo da Jenkins, vi spiegheremo prima di tutto come installare e configurare il programma. Vi mostreremo poi un esempio di come muovere i primi passi in un progetto.

Installazione del software

Jenkins è disponibile in diverse versioni: potete scegliere tra una Weekly-Version, che prevede il rilascio di un nuovo aggiornamento di Jenkins ogni settimana, o il Long-Term Support (LTS), una soluzione per la quale viene pubblicata una versione stabile ogni tre mesi. Queste due categorie permettono di scegliere tra diverse versioni: oltre ai pacchetti di installazione per i normali sistemi operativi (Windows, macOS, Ubuntu/Debian), sono disponibili anche una versione per Docker e un archivio web (.war).

N.B.

Nel nostro esempio utilizziamo il Windows Installer nella versione 2.121.1 (LTS) in Windows 7. Il processo di installazione può essere diverso se utilizzate un'altra versione o un altro sistema operativo. Poiché Jenkins è basato su Java, assicuratevi che la vostra versione sia aggiornata.

Il programma di installazione di Windows vi guiderà senza problemi attraverso la procedura di installazione. Dovete soltanto specificare la directory desiderata e avviare l'installazione.

Configurazione iniziale di Jenkins

L'installazione dovrebbe richiedere solo pochi secondi. Subito dopo, il programma avvia il browser standard e apre il localhost:8080, dove trovate l'interfaccia web dalla quale potete utilizzare Jenkins. Prima dovete tuttavia occuparvi della sicurezza, perché Jenkins ha generato una password casuale per voi, che potete trovare nella directory Jenkins, nel file initialAdminPassword all'interno della cartella Secrets. Il file può essere aperto con qualsiasi editor di testo. Copiate la stringa e incollatela nell'apposito campo dell'interfaccia web.

Ora è il momento della configurazione di Jenkins. Durante l’installazione guidata potete scegliere i plug-in da installare con Jenkins o selezionare un'impostazione predefinita che ha tutte le principali estensioni già integrate. Se utilizzate Jenkins per la prima volta, questa opzione sarà senz'altro sufficiente. Non preoccupatevi, ulteriori plug-in possono essere installati senza problemi anche in un secondo momento.

Continuate poi creando un primo utente. Se all'inizio lavorate da soli a un progetto, potete saltare questo passaggio e utilizzare Jenkins come amministratore. Potete creare nuovi utenti con diritti diversi nelle impostazioni di Jenkins in qualunque momento. Nella fase finale di configurazione potete inoltre specificare un URL di Jenkins. Nel campo corrispondente è già stato inserito localhost:8080. Se avete installato Jenkins su un server (come nel caso di un ambiente di lavoro professionale), inserite qui il percorso corretto per la directory di Jenkins. Salvate l'inserimento e completate la configurazione.

Consiglio

Ulteriori impostazioni possono essere effettuate in seguito nel menu di configurazione di Jenkins.

Jenkins – Introduzione al metodo di lavoro

Avviate Jenkins in un workspace completamente pulito. Per iniziare un nuovo progetto di CI dovete creare un nuovo job, cliccando sul pulsante ("create new jobs") al centro della finestra o tramite la voce di menu "New Item", che si trova sul lato sinistro.

Il passo successivo è quello di assegnare un nome al vostro progetto e selezionare il vostro obiettivo:

  • Freestyle project: Jenkins collega una gestione delle versioni con un sistema di build.
  • Pipeline: consente di creare una pipeline tra più build agent.
  • Multi-configuration project: selezionate questa opzione se avete un progetto che richiede impostazioni diverse, ad esempio perché utilizzate diversi ambienti di test.
  • Folder: una cartella è un container in cui è possibile salvare oggetti annidati.
  • GitHub Organization: questa opzione effettua una ricerca in tutti i repository di un account su GitHub.
  • Multibranch Pipeline: con questa opzione potete creare diverse pipeline contemporaneamente.

Jenkins si concentra principalmente sui progetti freestyle, motivo per cui nel nostro esempio creeremo un progetto di questo tipo.

Nella pagina seguente verranno visualizzate le numerose opzioni di impostazione disponibili. Il vostro progetto può essere configurato in una delle sei categorie. Supponiamo di scrivere un programma in Java e di voler utilizzare la Continuous Integration. Prima di tutto ci occuperemo del Source Code Management. Il programma utilizzato come esempio si trova in un repository git sul vostro computer (è anche possibile collegare Jenkins a GitHub). Inserite quindi la directory corretta sotto la voce "Git". Potete lavorare anche con una sottoversione.

Nel passo successivo, selezionate Build Trigger. In questo modo determinate le situazioni in cui Jenkins dovrebbe avviare una build. Questo è possibile, ad esempio, attraverso lo script speciale di un altro programma, dopo che un'altra build è stata completata o periodicamente a determinati intervalli di tempo. Potete attivare una build anche manualmente non appena siete pronti, come faremo nel nostro esempio.

Il Build Enviroment che dovete configurare successivamente contiene ulteriori opzioni per le build: ad esempio, il processo deve essere interrotto se si blocca? Oppure volete loggare un timestamp nella console? Nessuna delle opzioni è obbligatoria.

Dopo tutto, si tratta direttamente della build: qui definite come deve essere costruito il vostro programma. Dato che nella selezione standard dei plug-in avete già integrato collegamenti ad Ant e Gradle, potete selezionare uno di questi programmi. Tuttavia, è anche possibile utilizzare semplici comandi in riga di comando. Selezionate l'opzione per i comandi batch e lasciate che il programma si compili:

javac MyProgram.java
java MyProgram

In seguito Jenkins vi offre la possibilità di eseguire azioni una volta concluso il processo di build. Soprattutto il testing gioca un ruolo importante: collegate Jenkins e JUnit tramite l'opzione "Publish JUnit test result report" per integrare i risultati del framework di test per Java. Con plug-in aggiuntivi potete inoltre collegare Jenkins ad altri ambienti di test ed eseguire persino test automatici tramite il software. È inoltre possibile inviare e-mail a voi stessi e ad altri contenenti informazioni sullo stato della build. Infine dovete soltanto salvare i dati ed ecco che avete creato il vostro primo job.

Consiglio

Per installare altri plug-in è necessario riavviare il server Jenkins, effettuando il logout e aggiungendo safeRestart all'URL nella barra degli indirizzi del browser (ad esempio localhost:8080/safeRestart). Se ora effettuate nuovamente il login, potete confermare di volerlo riavviare.

Ogni progetto ha la propria sottopagina in Jenkins. Qui potete attivare una build, modificare nuovamente le impostazioni e verificare lo stato. Nella pagina "Status" di Jenkins potete visualizzare anche la Build History. L'ultima build è andata a buon fine oppure no? In Jenkins, i punti blu indicano un successo, mentre il rosso evidenzia un errore che, in base alla Continuous Integration, deve essere corretto immediatamente. A questo punto vedete anche se è in corso la creazione di una build. Cliccando sul numero della build accedete a una pagina che riporta diversi dettagli, dove potete visualizzare anche l'output della console.

La dashboard di Jenkins mostra tutti i progetti su cui state lavorando. Anche in questo caso, il programma segnala mediante diversi colori lo stato del progetto. Inoltre riceverete informazioni sulla Build Stability sotto forma di bollettino meteorologico. Si tratta di una statistica sulla stabilità media delle build del progetto. Se oltre l'80% delle vostre build va a buon fine, vedrete un sole. Al di sotto di questo valore il tempo simbolico peggiora sempre di più.

Per visualizzare questo video, sono necessari i cookie di terze parti. Puoi accedere e modificare le impostazioni dei cookie qui.
N.B.

Jenkins offre molti altri modi per personalizzare il programma in base alle proprie condizioni di lavoro, semplificando così il vostro processo di Continuous Integration. Soprattutto i numerosi plug-in potranno offrirvi una soluzione adatta nella maggior parte delle situazioni.

Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.