Questa è una domanda leggermente .. vana, ma l'output di BuildBot non è particolarmente bello da vedere ..
Ad esempio, rispetto a ..
..e altri, BuildBot sembra piuttosto .. arcaico
Attualmente sto giocando con Hudson, ma è molto incentrato su Java (anche se con questa guida ho trovato più facile da configurare rispetto a BuildBot e ho prodotto maggiori informazioni)
Fondamentalmente: esistono sistemi di integrazione continua mirati a Python, che producono molti grafici brillanti e simili?
Aggiornamento: da questa volta il progetto Jenkins ha sostituito Hudson come versione comunitaria del pacchetto. Anche gli autori originali sono passati a questo progetto. Jenkins è ora un pacchetto standard su Ubuntu / Debian, RedHat / Fedora / CentOS e altri. Il seguente aggiornamento è ancora sostanzialmente corretto. Il punto di partenza per farlo con Jenkins è diverso.
Aggiornamento: dopo aver provato alcune alternative, penso che rimarrò con Hudson. L'integrità era piacevole e semplice, ma piuttosto limitata. Penso che Buildbot sia più adatto ad avere numerosi build-slave, piuttosto che tutto in esecuzione su una singola macchina come lo stavo usando.
Impostare Hudson per un progetto Python è stato piuttosto semplice:
- Scarica Hudson da http://hudson-ci.org/
- Eseguilo con
java -jar hudson.war
- Apri l'interfaccia web con l'indirizzo predefinito di
http://localhost:8080
- Vai a Gestisci Hudson, Plugin, fai clic su "Aggiorna" o simile
- Installa il plugin Git (ho dovuto impostare il
git
percorso nelle preferenze globali di Hudson) - Crea un nuovo progetto, inserisci il repository, gli intervalli di polling SCM e così via
- Installa
nosetests
tramiteeasy_install
se non lo è già - Nella fase di creazione, aggiungi
nosetests --with-xunit --verbose
- Seleziona "Pubblica rapporto dei risultati del test JUnit" e imposta "XML del rapporto di prova" su
**/nosetests.xml
È tutto ciò che serve. Puoi configurare le notifiche e-mail e vale la pena dare un'occhiata ai plugin . Alcuni che sto attualmente utilizzando per i progetti Python:
- Plugin SLOCCount per contare le righe di codice (e rappresentarlo graficamente!) - Devi installare sloccount separatamente
- Violazioni per analizzare l'output di PyLint (è possibile impostare soglie di avviso, rappresentare graficamente il numero di violazioni su ciascuna build)
- Cobertura può analizzare l'output di coverage.py. Nosetest può raccogliere copertura durante l'esecuzione dei test, utilizzando
nosetests --with-coverage
(questo scrive l'output in**/coverage.xml
)