我有2个管道工作。
詹金斯文件中的第一个:
slave_list = ['test01', 'test02']
build job: 'pipeline-test2', parameters: [[$class: 'NodeParameterValue', name: 'node_list', labels: slave_list, nodeEligibility: [$class: 'AllNodeEligibility']]]
詹金斯文件中的第二个:
echo node_list
for (slave in node_list) {
echo slave
}
提示:第二个作业的名称是“pipeline-test2”,“node_list”是List类型的参数。
第一个作业触发第二个作业,第二个作业的输出为:
[Pipeline] echo
test01
[Pipeline] echo
t
[Pipeline] echo
e
[Pipeline] echo
s
[Pipeline] echo
t
[Pipeline] echo
0
[Pipeline] echo
1
为什么第二个作业只收到一个参数:test01?我希望第二个作业从第一个接收列表(slave_list)?以及如何完成它?谢谢!
答案 0 :(得分:0)
我认为这是基于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).
因此,每次Jenkins只选择一个节点(这就是为什么你只能看到节点1)来运行你传入的节点数。
如果您确实想要获取节点列表,可以将其作为普通参数而不是节点参数传递。
BR,
添