2012-05-16 19 views
5

Sto cercando una soluzione che ci permettesse di categorizzare costruire fallimenti come:Come classificare i fallimenti di build con jenkins?

  • sviluppatore (uno sviluppatore ha aggiunto codice cattivo)
  • sistema di compilazione (errore nel sistema di generazione)
  • problema delle infrastrutture (i server non risponde)

sarebbe bello se questo potrebbe essere fatto automaticamente la maggior parte del tempo, sulla base della uscita della console, ma anche abbiamo bisogno di un'opzione per rendere ab essere di un certo stato.

Come possiamo ottenere questo comportamento da jenkins?

+1

La tua domanda è che (1) hai già un meccanismo per determinare le cause di insuccesso e stai solo cercando modi per segnalarli correttamente o (2) che stai cercando modi per implementare tale meccanismo? –

+0

Diciamo che potrei implementare personalmente il rilevamento degli errori, ma ho bisogno di trovare un modo per archiviare il motivo dell'errore nel database di jenkins. Se non esiste nulla di simile, accetterei una serie di suggerimenti su come implementarlo. – sorin

risposta

1

Ai fini dei rapporti è possibile utilizzare descrizione accumulo (di modificarla manualmente per vedere come funziona andare al http://[jenkins_server]/job/[job_name]/[build_number]/editDescription, oppure fare clic su 'aggiungi descrizione' sulla pagina di stato build).

Programmaticamente è possibile impostare tramite Jenkins CLI (comando set-build-description); o da Groovy via Jenkins Java API - Run::setDescription() metodo.

Gli script Groovy possono essere richiamati tramite Groovy Plugin o Groovy PostBuild Plugin o entrambi.

2

Il Build Failure Analyzer plugin consente di impostare espressioni regolari per la categorizzazione di build attuali e futuri. Una volta impostate le espressioni regolari, il rilevamento è automatico per le build attuali e future. Questo potrebbe essere esattamente ciò che stai cercando.

Ho anche implementato un plug-in di categorizzazione di guasto manuale leggero per Jenkins, che fornisce un semplice menu a discesa e un campo di testo aggiuntivo per classificare i guasti manualmente. Questo è stato fatto per un progetto di ricerca che studia i fallimenti delle build. Le categorie sono attualmente salvate come XML separati nella directory di ogni build, per non avere alcun impatto sui file di Jenkins. Le categorie vengono visualizzate negli elenchi di build e in una pagina di categorizzazione separata per ogni build.

Lightweight Jenkins plugin for manual failure categorization

Mi dispiace dire che il plugin non è attualmente condivisa da nessuna parte, in quanto contiene alcuni hard-codifiche per un progetto specifico. Se esiste una richiesta per tale plug-in, posso visitare nuovamente il codice e pubblicarlo open source. Tuttavia, per i tuoi scopi sembra che la soluzione automatica di Build Failure Analyzer sia più adatta.

Il plug-in è molto semplice e le cose simili non sono difficili da implementare. Se desideri creare qualcosa di simile da te, o magari estendere il plug-in Build Failure Analyzer automatico in base alle tue esigenze, le pagine Jenkins plugin tutorial e Extend Jenkins sono un buon punto di partenza per lo sviluppo del plug-in Jenkins. Per la persistenza, acquisire familiarità con XStream sarebbe utile, in quanto è ciò che Jenkins e la maggior parte dei plug-in utilizzano internamente per serializzare i dati in XML.

+0

Dovresti condividere così del tuo codice! GitHub Gist è un'opzione - basta aggiungere un link nei commenti qui. Devo capire quali test stanno fallendo il più delle volte. Build Failure Analyzer consente di identificare gli errori di compilazione, ma poi ho bisogno di fare alcune statistiche sugli errori. Diciamo che nell'ultima settimana abbiamo avuto un errore X, B fallito Y volte, C fallito Y volte, ecc. – sakovias

1

Questo strumento su cui ho lavorato potrebbe essere d'aiuto: https://github.com/nacuteodor/SearchInJenkinsLogs. Questo può essere integrato con un lavoro di Jenkins. È possibile trovare un testo cercato specificando un'espressione regolare nelle risorse di build o test di errori e stamperà i nodi di generazione e i collegamenti di report di test non riusciti ordinati per build e test. Inoltre, ha una funzione per raggruppare i guasti simili più comuni utilizzando una soglia di differenza massima, in ordine di numero di errori di gruppo.

È possibile utilizzare questo strumento per trovare arresti anomali nei log delle risorse, che si desidera venga segnalato e corretto a.s.a.p, e si può fare in modo che il lavoro invii una notifica via e-mail o fallisca la creazione del lavoro dello strumento. Potrei aggiungere alcune altre funzionalità in futuro.

Problemi correlati