Jenkins è una web application che si occupa di svolgere e monitorare per noi task ripetitivi, come ad esempio i processi di building per i nostri progetti software.
Jenkins è un sistema molto utile di Continuous Integration (Integrazione continua) che fornisce agli sviluppatori tutti gli strumenti necessari per integrare il proprio lavoro applicando il merge continuo delle modifiche apportate al progetto.
Per chi ancora non conoscesse l'Integrazione Continua, questa è una pratica del software engineering attraverso la quale si applica un merge continuo (più volte al giorno) dei workspaces degli sviluppatori: questa tecnica permette di integrare in modo continuo il lavoro del team di sviluppo con lo scopo di minimizzare le problematiche di merging e integrazione tra il lavoro dei membri del team.
Per progetti di una certa dimensione è una pratica fortemente consigliata, soprattutto perché avendo a disposizione applicativi open-source come Jenkins, è sufficiente qualche piccola configurazione per avere sostanzialmente tutto il lavoro "pesante" (e soprattutto noioso!) svolto in modo automatico.
Jenkins è facile da installare ma soprattutto è molto intuitivo da utilizzare: l'interfaccia è pulita e chiara, e dopo qualche minuto di configurazione è possibile avere in piedi il proprio sistema di building automatico.
L'applicativo ha un'architettura modulare: sono disponibili diversi plugin e customizzazioni che permettono di personalizzare ed estendere le feature base di Jenkins per soddisfare sia le necessità del progetto sia le nostre necessità di monitoraggio.
Sul sito ufficiale è disponibile un elenco delle feature principali, una esauriente documentazione e una guida per estendere Jenkins con l'implementazione di plugin ad hoc.