Se volete uti­liz­za­re la me­to­do­lo­gia agile Con­ti­nuous In­te­gra­tion (CI) nel vostro team, dovreste affidarvi a uno strumento di CI semplice ma potente. Jenkins è un'ottima soluzione. Questo software open source vi offre mol­tis­si­me pos­si­bi­li­tà per rendere più ef­fi­cien­te il processo di in­te­gra­zio­ne continua, so­prat­tut­to grazie ai plug-in.

Jenkins è basato su Java e può quindi essere uti­liz­za­to su tutte le piat­ta­for­me. Poiché il software viene fornito insieme a Winston, un midd­leware servlet, non c'è bisogno di server ag­giun­ti­vi, come Tomcat. Per ottenere il massimo da Jenkins, vi spie­ghe­re­mo prima di tutto come in­stal­la­re e con­fi­gu­ra­re il programma. Vi mo­stre­re­mo poi un esempio di come muovere i primi passi in un progetto.

In­stal­la­zio­ne del software

Jenkins è di­spo­ni­bi­le in diverse versioni: potete scegliere tra una Weekly-Version, che prevede il rilascio di un nuovo ag­gior­na­men­to di Jenkins ogni settimana, o il Long-Term Support (LTS), una soluzione per la quale viene pub­bli­ca­ta una versione stabile ogni tre mesi. Queste due categorie per­met­to­no di scegliere tra diverse versioni: oltre ai pacchetti di in­stal­la­zio­ne per i normali sistemi operativi (Windows, macOS, Ubuntu/Debian), sono di­spo­ni­bi­li anche una versione per Docker e un archivio web (.war).

N.B.

Nel nostro esempio uti­liz­zia­mo il Windows Installer nella versione 2.121.1 (LTS) in Windows 7. Il processo di in­stal­la­zio­ne può essere diverso se uti­liz­za­te un'altra versione o un altro sistema operativo. Poiché Jenkins è basato su Java, as­si­cu­ra­te­vi che la vostra versione sia ag­gior­na­ta.

Il programma di in­stal­la­zio­ne di Windows vi guiderà senza problemi at­tra­ver­so la procedura di in­stal­la­zio­ne. Dovete soltanto spe­ci­fi­ca­re la directory de­si­de­ra­ta e avviare l'in­stal­la­zio­ne.

Con­fi­gu­ra­zio­ne iniziale di Jenkins

L'in­stal­la­zio­ne dovrebbe ri­chie­de­re solo pochi secondi. Subito dopo, il programma avvia il browser standard e apre il localhost:8080, dove trovate l'in­ter­fac­cia web dalla quale potete uti­liz­za­re Jenkins. Prima dovete tuttavia occuparvi della sicurezza, perché Jenkins ha generato una password casuale per voi, che potete trovare nella directory Jenkins, nel file ini­tia­lAd­min­Pas­sword al­l'in­ter­no della cartella Secrets. Il file può essere aperto con qualsiasi editor di testo. Copiate la stringa e in­col­la­te­la nel­l'ap­po­si­to campo del­l'in­ter­fac­cia web.

Ora è il momento della con­fi­gu­ra­zio­ne di Jenkins. Durante l’in­stal­la­zio­ne guidata potete scegliere i plug-in da in­stal­la­re con Jenkins o se­le­zio­na­re un'im­po­sta­zio­ne pre­de­fi­ni­ta che ha tutte le prin­ci­pa­li esten­sio­ni già integrate. Se uti­liz­za­te Jenkins per la prima volta, questa opzione sarà sen­z'al­tro suf­fi­cien­te. Non pre­oc­cu­pa­te­vi, ulteriori plug-in possono essere in­stal­la­ti senza problemi anche in un secondo momento.

Con­ti­nua­te poi creando un primo utente. Se al­l'i­ni­zio lavorate da soli a un progetto, potete saltare questo passaggio e uti­liz­za­re Jenkins come am­mi­ni­stra­to­re. Potete creare nuovi utenti con diritti diversi nelle im­po­sta­zio­ni di Jenkins in qualunque momento. Nella fase finale di con­fi­gu­ra­zio­ne potete inoltre spe­ci­fi­ca­re un URL di Jenkins. Nel campo cor­ri­spon­den­te è già stato inserito localhost:8080. Se avete in­stal­la­to Jenkins su un server (come nel caso di un ambiente di lavoro pro­fes­sio­na­le), inserite qui il percorso corretto per la directory di Jenkins. Salvate l'in­se­ri­men­to e com­ple­ta­te la con­fi­gu­ra­zio­ne.

Consiglio

Ulteriori im­po­sta­zio­ni possono essere ef­fet­tua­te in seguito nel menu di con­fi­gu­ra­zio­ne di Jenkins.

Jenkins – In­tro­du­zio­ne al metodo di lavoro

Avviate Jenkins in un workspace com­ple­ta­men­te 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 suc­ces­si­vo è quello di assegnare un nome al vostro progetto e se­le­zio­na­re 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-con­fi­gu­ra­tion project: se­le­zio­na­te questa opzione se avete un progetto che richiede im­po­sta­zio­ni diverse, ad esempio perché uti­liz­za­te diversi ambienti di test.
  • Folder: una cartella è un container in cui è possibile salvare oggetti annidati.
  • GitHub Or­ga­ni­za­tion: questa opzione effettua una ricerca in tutti i re­po­si­to­ry di un account su GitHub.
  • Mul­ti­branch Pipeline: con questa opzione potete creare diverse pipeline con­tem­po­ra­nea­men­te.

Jenkins si concentra prin­ci­pal­men­te sui progetti freestyle, motivo per cui nel nostro esempio creeremo un progetto di questo tipo.

Nella pagina seguente verranno vi­sua­liz­za­te le numerose opzioni di im­po­sta­zio­ne di­spo­ni­bi­li. Il vostro progetto può essere con­fi­gu­ra­to in una delle sei categorie. Sup­po­nia­mo di scrivere un programma in Java e di voler uti­liz­za­re la Con­ti­nuous In­te­gra­tion. Prima di tutto ci oc­cu­pe­re­mo del Source Code Ma­na­ge­ment. Il programma uti­liz­za­to come esempio si trova in un re­po­si­to­ry git sul vostro computer (è anche possibile collegare Jenkins a GitHub). Inserite quindi la directory corretta sotto la voce "Git". Potete lavorare anche con una sot­to­ver­sio­ne.

Nel passo suc­ces­si­vo, se­le­zio­na­te Build Trigger. In questo modo de­ter­mi­na­te le si­tua­zio­ni in cui Jenkins dovrebbe avviare una build. Questo è possibile, ad esempio, at­tra­ver­so lo script speciale di un altro programma, dopo che un'altra build è stata com­ple­ta­ta o pe­rio­di­ca­men­te a de­ter­mi­na­ti in­ter­val­li di tempo. Potete attivare una build anche ma­nual­men­te non appena siete pronti, come faremo nel nostro esempio.

Il Build En­vi­ro­ment che dovete con­fi­gu­ra­re suc­ces­si­va­men­te contiene ulteriori opzioni per le build: ad esempio, il processo deve essere in­ter­rot­to se si blocca? Oppure volete loggare un timestamp nella console? Nessuna delle opzioni è ob­bli­ga­to­ria.

Dopo tutto, si tratta di­ret­ta­men­te della build: qui definite come deve essere costruito il vostro programma. Dato che nella selezione standard dei plug-in avete già integrato col­le­ga­men­ti ad Ant e Gradle, potete se­le­zio­na­re uno di questi programmi. Tuttavia, è anche possibile uti­liz­za­re semplici comandi in riga di comando. Se­le­zio­na­te l'opzione per i comandi batch e lasciate che il programma si compili:

javac MyProgram.java
java MyProgram

In seguito Jenkins vi offre la pos­si­bi­li­tà di eseguire azioni una volta concluso il processo di build. So­prat­tut­to il testing gioca un ruolo im­por­tan­te: 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 ag­giun­ti­vi potete inoltre collegare Jenkins ad altri ambienti di test ed eseguire persino test au­to­ma­ti­ci tramite il software. È inoltre possibile inviare e-mail a voi stessi e ad altri con­te­nen­ti in­for­ma­zio­ni sullo stato della build. Infine dovete soltanto salvare i dati ed ecco che avete creato il vostro primo job.

Consiglio

Per in­stal­la­re altri plug-in è ne­ces­sa­rio riavviare il server Jenkins, ef­fet­tuan­do il logout e ag­giun­gen­do sa­fe­Re­start all'URL nella barra degli indirizzi del browser (ad esempio localhost:8080/sa­fe­Re­start). Se ora ef­fet­tua­te nuo­va­men­te il login, potete con­fer­ma­re di volerlo riavviare.

Ogni progetto ha la propria sot­to­pa­gi­na in Jenkins. Qui potete attivare una build, mo­di­fi­ca­re nuo­va­men­te le im­po­sta­zio­ni e ve­ri­fi­ca­re lo stato. Nella pagina "Status" di Jenkins potete vi­sua­liz­za­re 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 Con­ti­nuous In­te­gra­tion, deve essere corretto im­me­dia­ta­men­te. 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 vi­sua­liz­za­re 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 ri­ce­ve­re­te in­for­ma­zio­ni sulla Build Stability sotto forma di bol­let­ti­no me­teo­ro­lo­gi­co. Si tratta di una sta­ti­sti­ca 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ù.

V568cAbz2ls.jpg 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 per­so­na­liz­za­re il programma in base alle proprie con­di­zio­ni di lavoro, sem­pli­fi­can­do così il vostro processo di Con­ti­nuous In­te­gra­tion. So­prat­tut­to i numerosi plug-in potranno offrirvi una soluzione adatta nella maggior parte delle si­tua­zio­ni.

Vai al menu prin­ci­pa­le