Jenkins-Pipeline-Schritte überspringen, wenn der Knoten offline ist

8

Ich habe einen Jenkins-Pipeline-Job, der für einen Teil des Builds einen Knoten mit einer langen Ausfallzeit verwendet. Ich möchte, dass dieser Schritt durchgeführt wird, wenn der Knoten online ist und übersprungen wird, ohne dass der Build fehlschlägt, wenn der Knoten offline ist.

Dies ist verwandt, aber anders als das Problem Teile eines Matrix-Projekts zu überspringen .

Ich habe versucht, programmatisch zu prüfen, ob ein Knoten so online ist.

%Vor%

Dies läuft gegen die Jenkins-Sicherheits-Sandbox:

%Vor%

Ich habe versucht, eine Zeitüberschreitung zu setzen, die ausgelöst wird, wenn der Knoten offline ist.

%Vor%

Das hat einen großen Nachteil. Ich muss wissen, wie lange der Schritt dauern wird, und dann noch länger warten, wenn der Knoten ausgefallen ist. Ich habe versucht, das mit einem "Kanarienvogel" Schritt zu umgehen:

%Vor%

Dies überspringt den Schritt, wenn der Knoten aktiv ist, aber mit einem anderen Job beschäftigt ist. Dies ist die beste Lösung, die ich bisher gefunden habe. Gibt es nur eine Möglichkeit zu überprüfen, ob der Knoten online ist, ohne ein Timeout zu verwenden?

    
James Marble 06.07.2016, 19:04
quelle

1 Antwort

3

Das sollte funktionieren:

Jenkins.instance.getNode('my-node').toComputer().isOnline()

siehe Ссылка

    
Lincoln 28.03.2017, 09:34
quelle

Tags und Links