Kann ich mehrere Agentenbezeichnungen in einer deklarativen Jenkins-Pipeline definieren?

8

Ich verwende deklarative Jenkins-Pipelines , um einige meiner Build-Pipelines auszuführen frage mich, ob es möglich ist, mehrere Agentenbezeichnungen zu definieren.

Ich habe eine Reihe von Build Agents an meine Jenkins angeschlossen und möchte, dass diese spezielle Pipeline von verschiedenen Agenten erstellt werden kann, die unterschiedliche Labels haben (aber nicht von ALLEN Agenten).

Um konkreter zu sein, sagen wir, ich habe 2 Agenten mit einem Label "klein", 4 mit Label "mittel" und 6 mit Label "groß". Jetzt habe ich eine Pipeline, die sehr ressourcenschonend ist und ich möchte, dass sie nur auf einem "kleinen" oder "mittelgroßen" Agenten ausgeführt wird, aber nicht auf einem großen, da größere Builds in der Warteschlange warten können für eine unnötig lange Zeit.

Alle Beispiele, die ich bisher gesehen habe, verwenden nur ein einzelnes Label. Ich habe so etwas versucht:

%Vor%

Aber es ist gescheitert.

Ich benutze Version 2.5 des Jenkins Pipeline Plugins.

    
FrontSide 10.04.2017, 10:39
quelle

4 Antworten

10

Sie können die Hilfe zur 'Pipeline-Syntax' in Ihrer Jenkins-Installation sehen und den Referenzpunkt 'Knoten' im Beispielschritt sehen.

Sie können exprA||exprB :

verwenden %Vor%     
Arcin B 12.04.2017, 14:14
quelle
6
  

EDIT: Ich habe die Frage falsch verstanden. Diese Antwort ist nur, wenn Sie es wissen   welcher spezifische Agent für jede Phase ausgeführt werden soll.

Wenn Sie mehrere Agenten benötigen, können Sie agent none deklarieren und dann den Agenten in jeder Phase deklarieren.

Ссылка

Aus der Dokumentation:

%Vor%     
mcalcote 11.04.2017 16:39
quelle
5

Diese Syntax scheint für mich zu funktionieren:

%Vor%     
gone.skiing 18.08.2017 14:20
quelle
0
___ qstnhdr ___ Kann ich mehrere Agentenbezeichnungen in einer deklarativen Jenkins-Pipeline definieren? ___ answer45758948 ___

Diese Syntax scheint für mich zu funktionieren:

%Vor%     
___ answer43372100 ___

Sie können die Hilfe zur 'Pipeline-Syntax' in Ihrer Jenkins-Installation sehen und den Referenzpunkt 'Knoten' im Beispielschritt sehen.

Sie können %code% :

verwenden %Vor%     
___ antwort43797967 ___

Erstellen Sie einen weiteren Label-Aufruf 'klein-oder-mittel' mit 6 allen Agenten. Dann in Jenkinsfile:

%Vor%     
___ tag123jenkins ___ Jenkins ist ein Open-Source-Tool für die kontinuierliche Integration, das in Java geschrieben wurde und Pakete für Linux, Mac OS X, Windows, FreeBSD und OpenBSD enthält. Das Projekt wurde von Hudson abgezweigt. ___ qstntxt ___

Ich verwende deklarative Jenkins-Pipelines , um einige meiner Build-Pipelines auszuführen frage mich, ob es möglich ist, mehrere Agentenbezeichnungen zu definieren.

Ich habe eine Reihe von Build Agents an meine Jenkins angeschlossen und möchte, dass diese spezielle Pipeline von verschiedenen Agenten erstellt werden kann, die unterschiedliche Labels haben (aber nicht von ALLEN Agenten).

Um konkreter zu sein, sagen wir, ich habe 2 Agenten mit einem Label "klein", 4 mit Label "mittel" und 6 mit Label "groß". Jetzt habe ich eine Pipeline, die sehr ressourcenschonend ist und ich möchte, dass sie nur auf einem "kleinen" oder "mittelgroßen" Agenten ausgeführt wird, aber nicht auf einem großen, da größere Builds in der Warteschlange warten können für eine unnötig lange Zeit.

Alle Beispiele, die ich bisher gesehen habe, verwenden nur ein einzelnes Label. Ich habe so etwas versucht:

%Vor%

Aber es ist gescheitert.

Ich benutze Version 2.5 des Jenkins Pipeline Plugins.

    
___ tag123jenkinspipeline ___ Fragen zur Jenkins "Pipeline" Plugin Suite (früher "Workflow"). Nicht über Pipelines in Jenkins im Allgemeinen (z. B. mit Downstream-Jobs). ___ tag123groovy ___ Groovy ist eine objektorientierte Programmiersprache für die Java-Plattform. Es ist eine dynamische Sprache mit ähnlichen Funktionen wie Python, Ruby, Perl und Smalltalk. Es kann als Skriptsprache für die Java-Plattform verwendet werden. ___ answer43351702 ___
  

EDIT: Ich habe die Frage falsch verstanden. Diese Antwort ist nur, wenn Sie es wissen   welcher spezifische Agent für jede Phase ausgeführt werden soll.

Wenn Sie mehrere Agenten benötigen, können Sie %code% deklarieren und dann den Agenten in jeder Phase deklarieren.

Ссылка

Aus der Dokumentation:

%Vor%     
___
Bing Shiao 05.05.2017 06:29
quelle