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

Is it possible to dynamically (NOT statically) tie build jobs on jenkins to specific nodes

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

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

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

考虑添加 Node label plugin 和参数

这将使 "label" 作为参数。你可以通过小逻辑来传递这个参数。

使用 Workflow plugin.

可以更简洁地完成此类专门任务
node('first') {
  sh 'rm -rf *' // or when 1.11 released: deleteDir()
  // more work…
}
node('second') {
  sh 'rm -rf *'
  // …
}

或者您可以使用 parallel 步骤来同时 运行 这些事情,等等

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