我正在尝试使用插件节点标签插件,添加Label参数并选择在管道作业中匹配标签的所有节点上运行。 但这仅在其中一个节点上运行,即使可以通过构建页面中的显示节点发现节点。
我还尝试使用同一插件提供的“标签工厂的所有节点”选项,但是当我想要在作业中使用多个标签时,此操作会失败,如下所述:https://issues.jenkins-ci.org /browse/JENKINS-59431(包括最新评论) 在谷歌上花了很多时间后,我开始相信,当我使用
Label和run in all时,所有节点都会同时运行,与我在网上看到的其他示例的唯一区别是它们是不是管道作业,因此与管道中的不允许并发构建选项(未选择)相比,并发作业是一个可选择的选项
我将触发器作业设置为管道,在其中通过所有带有标签的节点的循环内使用 2 个参数构建下游作业:
def nodeArray = nodesByLabel label:"${params.labeled}", offline: false
for(item in nodeArray) {
build job:"DownstreamJob", parameters:[
[$class: 'LabelParameterValue', name: 'node', label: "${item}"],
string(name:"nodeToRunIn", value:"${item}")
], propagate: false, wait:false
}
在 DownstreamJob 中我从以下内容开始:
node (params.nodeToRunIn) {
可能不是最好的解决方案,因为这将使插件按预期工作,但目前正在工作。