Jenkins / Hudson-Upstream-Job erhält nicht den Status "Ball" der Downstream-Jobs

8

Ich habe einen Upstream-Job, der 4 Downstream-Jobs ausführt.

Wenn der Upstream-Job erfolgreich abgeschlossen wird, starten die Downstream-Jobs ihre Ausführung.

Der vorgelagerte Job erhält, da er erfolgreich beendet wurde, einen blauen Ball (Build-Ergebnis = stabil), aber selbst wenn die Downstream-Jobs fehlschlagen (roter Ball) oder instabil sind (gelber Ball), behält der Upstream-Job seine blaue Farbe bei.

Ist das Ergebnis des Upstream-Jobs sowieso abhängig von den Downstream-Jobs ?, dh wenn drei Downstream-Jobs einen stabilen Build erhalten, aber einer von ihnen einen instabilen Build erhält, sollte das Upstream-Build-Ergebnis instabil sein.

    
victorgp 26.05.2011, 15:20
quelle

5 Antworten

6

Ich habe die Lösung gefunden. Es gibt ein Plugin namens Groovy Postbuild pluging, mit dem Sie ein Groovy-Skript in der Post-Build-Phase ausführen können. Fügen Sie den Downstream-Jobs einen einfachen Code hinzu, mit dem Sie den Upstream-Gesamtstatus ändern können.

Dies ist der Code, den Sie hinzufügen müssen:

%Vor%

Weitere Informationen finden Sie im Eintrag meiner blog hier .

    
victorgp 14.06.2011, 17:25
quelle
5

Eine weitere Option, die für Sie funktionieren könnte, ist die Verwendung des parametrisierten Build-Plugins. Es ermöglicht Ihnen, Ihre 4 "downstream" Builds als Build-Schritte zu haben. Dies bedeutet, dass Ihr "Eltern" -Build fehlschlagen kann, wenn einer der untergeordneten Builds dies tut.

Wir tun dies, wenn wir die Komplexität für die Build-Pipeline Plug-in-Ansicht ausblenden möchten

    
Geoff Bullen 31.05.2011 05:24
quelle
1

Wir hatten eine ähnliche Problematik und haben keine perfekte Lösung gefunden. Eine Teillösung ist die Verwendung des Promoted Builds Plugins . Konfigurieren Sie es für Ihr Upstream-Projekt so, dass es einen visuellen Indikator enthält, wenn der nachgeordnete Job beendet wird. Es ändert nicht den allgemeinen Jobstatus, aber es benachrichtigt uns, wenn der nachgelagerte Job fehlschlägt.

    
Jason Swager 27.05.2011 15:44
quelle
1

Vielleicht macht dieses Plugin das, wonach Sie suchen?

Jenkins Voraussetzung Build Schritt Plugin

    
jaustin 08.07.2011 20:12
quelle
0

Die Arbeit für mein Projekt besteht darin, einen neuen Job zu erstellen, bei dem es sich um den Downstream der Downstreams handelt. Wir haben in allen drei ursprünglichen Downstream-Jobs einen Post-Build-Schritt "Parametergesteuerten Trigger auf andere Projekte erstellen" gesetzt. Der Parameter, der in den neuen Job eingruppiert, hängt vom Status der drei Jobs ab und der Parameter bewirkt, dass der neue Job entsprechend reagiert.

1. Erstellen Sie einen neuen Job, der eine einfache Klasse und einen einfachen Test enthält. Beide Parameter sind abhängig, d. H. Klasse fehlgeschlagen, wenn Parameter "status" = fail , Klasse bestanden, aber Test fehlgeschlagen ist, wenn Parameter "status"=unstable , etc.

2. Setzen Sie den parametrisierten Trigger auf andere Projekte für die drei ursprünglichen nachgeordneten Jobs mit den entsprechenden Konfigurationen.

3. Legen Sie die Benachrichtigung für den neuen Job entsprechend fest.

    
Javabeginner 01.06.2011 11:19
quelle