2016-05-23 29 views
5

Chciałbym sprawdzić lub uzyskać powiadomienia o błędach ankiety SCM w Jenkins (na przykład, gdy adres URL repozytorium został zmieniony lub gałąź została usunięta). Myślałem o nich:Poinformuj o/sprawdź, czy nie przeprowadzono ankiety SCM w Jenkins

a) Skrypt konsola Jenkins, która będzie wymienić takie wadliwe pracy

b) Konfiguracja/zainstalowanie wtyczki do Jenkins powiadomić mnie jakoś o tym fakcie (e-mail, cokolwiek)

c) Zewnętrzny skrypt/plik wykonywalny (bash, python, ...), który wyświetli listę kompilacji, które nie powiodły się w ciągu ostatnich X godzin z powodu błędu ankiety SCM

+1

[Ta odpowiedź] (http://stackoverflow.com/questions/18277720/email-notification-for-subversion-polling-failures-in-jenkins) jest dla SVN, ale myślę, że dotyczy to również tego przypadku . – approxiblue

Odpowiedz

1

Jak wspomniano w pytaniu, jednym ze sposobów rozwiązania tego problemu jest za pomocą skryptu. Na przykład: Groovy Postbuild.

Ponieważ skrypty Groovy Postbuild działają na serwerze głównym, można uzyskać dostęp do każdego pliku polling.log znalezionego w systemie plików przy użyciu standardowych funkcji IO.

Na przykład, zakładając aster Windows, oto niektóre z nich (niesprawdzone) pseudokod, aby dać Ci kilka pomysłów:

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(); 
} 

Po zaznaczeniu kompilacji jak awaria, można użyć standardowych funkcji e-mail Jenkins, aby wysłać wiadomość e-mail lub sformatować ją tak, aby wyglądała ładnie przy użyciu Email-ext plugin.

Powiązane problemy