Jenkins (software)
# Jenkins (software)

Jenkins è uno strumento open source di supporto allo sviluppo software scritto in linguaggio Java. Il progetto nasce come versione alternativa di Hudson a partire dallo stesso codice sorgente dopo una discussione con Oracle.

Fornisce dei servizi di integrazione continua per lo sviluppo del software. Viene eseguito lato server all'interno di un server web che supporta la tecnologia Servlet e quindi può essere utilizzato da remoto all'interno di un Web browser. Può essere usato con i principali strumenti di gestione del codice sorgente, come AccuRev, Concurrent Versions System, Subversion, Git, Mercurial, Perforce, Clearcase e Rational Team Concert. Può eseguire progetti scritti in Ant o Maven e anche script bash o comandi batch di Windows. Lo sviluppatore principale è Kohsuke Kawaguchi. Il progetto è disponibile sotto la licenza MIT, quindi è open source.

Le esecuzioni possono essere azionate in vari modi, tra cui un commit oppure ad ogni intervallo di tempo oppure attraverso l'interfaccia web.

## Storia

Jenkins è stato originariamente sviluppato come Hudson. Hudson è cominciato nell'estate 2004 da Sun Microsystems. È stato pubblicato su java.net nel febbraio 2005.

Intorno al 2007 Hudson divenne conosciuto come un'alternativa migliore a CruiseControl e altri server di build open-source. Alla conferenza JavaOne nel maggio 2008 il software vinse il premio Duke's Choice nella categoria Developer Solutions.

Durante il novembre 2010, all'interno della comunità degli sviluppatori di Hudson sorse un problema riguardante la gestione e il controllo da parte di Oracle. Ci furono dei negoziati tra gli sviluppatori principali e Oracle: sebbene ci fossero molti punti d'accordo, una questione molto importante fu la gestione del nome Hudson per il quale Oracle chiese l'esclusività sul marchio commerciale nel dicembre 2010. Di conseguenza fu proposta una votazione per cambiare il nome da "Hudson" a "Jenkins". La proposta fu approvata il 29 gennaio 2011, creando il progetto Jenkins.

## Plugin

Molti plugin sono stati creati per estendere le funzionalità di Jenkins e comprendono l'integrazione con gli strumenti di controllo delle versioni e le grandi basi dati.

I build possono generare dei rapporti sui risultati in diversi formati (JUnit è supportato nativamente, altri via plugin) e Jenkins può generare dei report e renderli visualizzabili all'interno del browser.

