2016-05-23 100 views
5

Vorrei verificare o ricevere notifiche sugli errori di polling SCM in Jenkins (ad esempio, quando l'URL del repository è stato modificato o il ramo è stato eliminato). Ho pensato a questi:Notifica su/verifica per errore di polling SCM in Jenkins

a) Uno script console Jenkins, che elencare tali lavori difettosi

b) Configurazione/installazione di plug-in per Jenkins di notificare me in qualche modo di questo fatto (e-mail, qualsiasi cosa)

c) Script esterno/eseguibile (bash, python, ...), che elenca le compilazioni fallite nelle ultime X ore a causa di un errore di polling SCM

+1

[Questa risposta] (http://stackoverflow.com/questions/18277720/email-notification-for-subversion-polling-failures-in-jenkins) è per SVN, ma penso che si applichi anche in questo caso . – approxiblue

risposta

1

Come hai detto nella tua domanda, un modo per affrontare questo problema è usando uno script. Ad esempio, Groovy Postbuild.

Poiché gli script Groovy Postbuild vengono eseguiti sul master, è possibile accedere a scm-polling.log di ogni lavoro trovato nel file system utilizzando le funzioni IO standard.

Per esempio, supponendo che un maestro di Windows, ecco alcune (non testato) pseudocodice per darvi alcune idee:

def error = false; 
def jobsDirectory = new File("C:\\Jenkins\\jobs"); 
jobsDirectory.eachFile { 
    def pollingLog = new File(it.path + "\\scm-polling.log"); 
    if(pollingLog.text =~ "ERROR") 
    { 
     manager.listener.logger.println(it.path + " has polling errors."); 
     error = true; 
    } 
} 

if(error) { 
    manager.build.buildFailure(); 
} 

Dopo aver contrassegnato la build come un fallimento, è possibile utilizzare la funzionalità di posta elettronica standard Jenkins per inviare una e-mail o formattarlo per un aspetto gradevole utilizzando il Email-ext plugin.