如何使用Jenkins管道在多个平台上触发构建?

时间:2018-07-25 13:20:18

标签: jenkins build jenkins-pipeline jenkins-job-builder

node label

我想在“ hyp-z”和“ hyp-x”构建节点上触发Jenkins工作。我试图用这种方式写,但是得到“没有标签为'hyp-x && hyp-z'的节点”

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

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

2 个答案:

答案 0 :(得分:0)

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

您可以使用并行块来执行所需的操作。 如果您使用的是Declarative语法,请参阅本文 https://jenkins.io/blog/2017/09/25/declarative-1/ 或这里脚本 https://jenkins.io/doc/book/pipeline/jenkinsfile/#parallel-execution

答案 1 :(得分: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平台构建。