0

我正在尝试使用插件节点标签插件,添加标签参数并选择在管道作业中匹配标签的所有节点上运行。但这仅在其中一个节点上运行,即使节点可以通过构建页面中的显示节点发现。

我也尝试过使用相同插件提供的标签工厂的所有节点选项,但是当我想要在作业中使用多个标签时,这会失败,如下所述:https ://issues.jenkins-ci.org/browse/JENKINS -59431 (包括最新评论)

在谷歌上花了很多小时后,我开始相信,当我在所有节点中使用带有运行的标签时,所有节点都会同时运行,与我在网上看到的其他示例的唯一区别是它们不是管道作业,所以与管道中的不允许并发构建选项(未选中)相比,并发作业是一个可选选项

4

1 回答 1

0

万一有人遇到这个问题,我决定回答这个问题。

我将触发作业设为管道,在其中我使用 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) {

可能不是最好的解决方案,因为那本来可以让插件按预期工作,但这目前正在工作。

于 2020-02-17T12:04:22.383 回答