【问题标题】:Jenkins job wait for multiple open executor slotsJenkins 作业等待多个打开的执行器插槽
【发布时间】:2014-09-30 15:16:39
【问题描述】:

我有一个通用作业“构建”,由每个代码行的具体构建调用,例如'stable_build'。我有 stable_build 触发器构建并选中“阻止直到触发的项目完成构建”,这样 stable_build 的结果将反映构建的结果。这意味着每当我执行 stable_build 时,它需要 2 个执行器插槽,一个用于 stable_build,一个用于构建。我还有另一份工作“stable_tests”,它以类似的方式触发“测试”。我面临的问题是:如果同时执行 stable_build 和 stable_tests,每个将占用一个执行器插槽,而下游的“构建”和“测试”在队列中。

在 Jenkins 中是否有办法配置作业以等待 2 个打开的执行器插槽,或者可能是另一种解决方法?

【问题讨论】:

  • 您是使用从节点还是从主节点运行?我认为您可以配置三个以上的执行器
  • 我正在从 master 运行一切。我可以增加执行者的数量,但仍然会有竞争条件。这也是一个简化的例子;实际上,我使用 5 个代码行和每个代码行 5 个作业。

标签: jenkins jenkins-plugins


【解决方案1】:

有一个插件可以做到这一点:

繁重的工作插件

https://wiki.jenkins-ci.org/display/JENKINS/Heavy+Job+Plugin

【讨论】:

    【解决方案2】:

    您可以增加执行者的数量...这是在 Manage Jenkins > Configure System > # of executors 中设置的

    更多详情请参阅此主题:Jenkins - maximum number of concurrent jobs

    【讨论】:

    • 我最初是这样做的,但这并不能避免'stable_build'和'stable_tests'正在构建并且'build'和'tests'在队列中的竞争条件。这也是一个简化的例子;实际上,我使用 5 个代码行和每个代码行 5 个作业。
    【解决方案3】:

    很难确切地确定您在这里尝试做什么(也许您可以详细说明),但您是否探索过post-build actions 部分中的build other projects 选项?

    您可以指定与主作业相关的作业的逗号分隔列表。还有一个方便的trigger only if build succeeds 选项。

    【讨论】:

      猜你喜欢
      • 2015-10-15
      • 1970-01-01
      • 2017-05-31
      • 1970-01-01
      • 2013-02-13
      • 2019-04-22
      • 2019-10-30
      • 2020-01-04
      • 1970-01-01
      相关资源
      最近更新 更多