如何让构建的所有作业专门在同一节点上执行?

时间:2014-12-08 21:37:16

标签: jenkins

我有一个带有六个版本的Jenkins服务器。这些构建中的每一个都由一个父作业组成,该作业可以触发4到6个并行运行的较小作业。我使用EC2插件来保持活动从站的数量与排队构建的数量一致。或者换句话说,奴隶一直在来去。每个奴隶有7个执行者(父作业+最大(4,6))。

构建的所有作业在同一台机器上执行绝对至关重要。我也不能允许构建A中的任何作业在运行构建B的作业的机器上执行。

我正在寻找的是一种阻止Jenkins使用节点的任何非活动执行程序的方法,只要先前构建中的任何作业仍在其上有效。

我花了一天时间尝试使用Throttle Concurrent Builds插件和NodeLabel参数插件的组合。不幸的是,似乎某个地方的某个错误会导致限制的构建无法对从属的加载统计信息做出贡献。这反过来意味着受限制的构建永远不会触发Jenkins启动其他从属。显然这是完全不可接受的。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用“此版本已参数化” 并将$ NODE_NAME作为构建之间的参数传递,然后在“限制此项目可以运行的位置”中使用它