0

节点标签

我想在“hyp-z”和“hyp-x”构建节点上触发 Jenkins 作业。我试图这样写,但得到“没有带有标签'hyp-x&&hyp-z'的节点”

  node ('hyp-z&&hyp-x') {
   // write something here
  }

我在做什么错误,确切的工作格式是什么?

4

2 回答 2

0

我已经尝试过两种方式

def labels = ["hyp-x", "hyp-z"]
def builders = [:]
for (x in labels) {
    def label = x
    builders[label] = {
        node(label) {
            // build script
        }
    }
}
parallel builders

上面的代码按 Jenkinsfile 的预期工作,但我看到两个构建都是在一项常见的工作中触发的,并且日志看起来很笨拙。所以我尝试了下面的第二种方法

创建Jenkinsfile.xJenkinsfile.z每个文件代表 x 和 z 平台构建。

于 2018-07-26T08:39:30.787 回答
0

这在这种形式下是不可能的。&& 表达式用于缩小某些功能的节点池。例如,我想在标签为 UBUNTU 和 DOCKER 的节点上运行。与在具有这些标签的两个不同节点上运行相反。

您可以使用并行块来做您想做的事。如果您使用的是声明式语法,请参阅本文 https://jenkins.io/blog/2017/09/25/declarative-1/ 或此处查看脚本 https://jenkins.io/doc/book/pipeline/jenkinsfile /#并行执行

于 2018-07-25T13:55:07.970 回答