2016-08-02 6 views
0

Ich habe 2 Pipeline-Jobs.Wie erhalte ich eine Knotenliste nach dem Parameter des vorherigen Pipeline-Jobs in Jenkins?

Jenkinsfile in der ersten:

slave_list = ['test01', 'test02'] 
build job: 'pipeline-test2', parameters: [[$class: 'NodeParameterValue', name: 'node_list', labels: slave_list, nodeEligibility: [$class: 'AllNodeEligibility']]] 

Jenkinsfile in der zweiten:

echo node_list 
for (slave in node_list) { 
    echo slave 
} 

Spitze: der Name der zweiten Aufgabe ist "pipeline-Test2" und "node_list" ist ein Parameter vom Listentyp.

der erste Auftrag löst die zweite, und der Ausgang des zweiten Job ist:

[Pipeline] echo 
test01 
[Pipeline] echo 
t 
[Pipeline] echo 
e 
[Pipeline] echo 
s 
[Pipeline] echo 
t 
[Pipeline] echo 
0 
[Pipeline] echo 
1 

warum der zweite Job nur einen Parameter erhält: test01? Ich möchte, dass der zweite Job eine Liste (slave_list) von der ersten erhält? und wie man es vervollständigt? Vielen Dank!

Antwort

0

Ich denke, das ist ein normales Verhalten basierend auf dem Jenkins doc.

Defines a list of nodes where this job could potentially be executed on. 

The job can be executed on multiple nodes/slaves, one after the other 
(concurrent execution is currently not supported). 

Also jedes Mal, wird Jenkins nur einen Knoten wählen (Aus diesem Grund können Sie nur Knoten 1 sehen) eingesetzt werden, laufen, wie viele Knoten, die Sie übergeben.

Wenn Sie wirklich Knotenliste erhalten möchten, Sie können es als normale Parameter anstelle von Knotenparameter übergeben.

Br,

Tim

+0

Tim vielen Dank !! Ich möchte einen Job auslösen, der gleichzeitig in vielen Knoten ausgeführt wird. Wenn ich anstelle des Knoteparameters einen normalen Parameter übergebe, führe ich den Job nur nacheinander im Knoten aus, wie zum Beispiel for clausel. Können Sie mir sagen, wie Sie in vielen Knoten gleichzeitig einen Job auslösen können? –

+0

Hallo, was du getan hast ist korrekt, wenn du die Pipeline1 sehr oft hast, wirst du feststellen, dass einige von ihnen in Slave1 laufen, einige von ihnen laufen in Slave2 – Tim