是否可以动态(非静态地)将jenkins上的构建作业绑定到特定节点

时间:2015-09-06 00:15:27

标签: jenkins jenkins-plugins jenkins-workflow

我让jenkins设置了2个独立的节点。我还有一个调用多个工作的父工作。在父作业的构建过程中,其中一个作业被多次调用(它会对其余作业之间的工作区进行一些清理)。

我想知道是否可以动态地将此作业的构建绑定到特定节点?

正如我提到的那样,作业会清理工作区,显然我需要在构建父作业期间在两个节点上完成这项工作。我也不想创建两个完全相同的单独作业,唯一的区别是将每个作业静态地绑定到不同节点的复选框。我的问题有解决方案吗?

2 个答案:

答案 0 :(得分:2)

考虑添加Node label plugin和参数

这将使“label”作为参数。您可能需要很小的逻辑来传递此参数。

答案 1 :(得分:0)

使用Workflow plugin可以更简洁地完成这种专门的任务。

node('first') {
  sh 'rm -rf *' // or when 1.11 released: deleteDir()
  // more work…
}
node('second') {
  sh 'rm -rf *'
  // …
}

或者您可以使用parallel步骤同时运行这些内容等。

您也可以使用build以各种方式启动其他项目的构建,但是您失去了能够在一个脚本中查看整个过程的优势,并且您也可能失去对确切工作区的控制权正在被下游构建使用(特别是如果它被标记为并发能力)。