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