【问题标题】:Prevent Jenkins from polling SCM (Git) while build is running防止 Jenkins 在构建运行时轮询 SCM (Git)
【发布时间】:2019-01-11 10:04:33
【问题描述】:

假设我有一个运行需要 5 分钟的构建,并且 SCM 轮询设置为每 2 分钟运行一次 (H/2 * * * *)。如果推送了提交,Jenkins 会轮询并发现更改并开始构建 #1。 2 分钟过去后,构建 #1 仍在运行,Jenkins 再次轮询,发现相同的“更改”(已经在构建),并将构建 #2 排入队列。

我为项目设置了“不同时构建”。

在构建完成之前,“最后构建的修订版”似乎不会更新。你可以想象,如果我大约在同一时间排队 5-​​10 个不同的项目,那么 Jenkins 会放慢速度(同时运行来自不同项目的构建),并且对每个项目的轮询将继续为同一个提交添加另一个构建已经在排队或正在建设中。

如何在构建同一个项目时禁用轮询? (将轮询改为每 5 分钟以上检查一次并不是正确的解决方案。)

TL;DR我不希望我的 Jenkins 项目在它们已经在构建或构建排队时进行轮询。

【问题讨论】:

    标签: git jenkins continuous-integration


    【解决方案1】:

    除了切换到基于 webhook 的构建外,没有其他解决方法,这就是我们所做的,并且从未回头。

    【讨论】:

      【解决方案2】:

      几年前,Jenkins 项目拒绝添加此功能:

      https://issues.jenkins-ci.org/browse/JENKINS-8950 - 如果构建正在运行,则禁用轮询。

      【讨论】:

      • 嗯。无论如何,我们都切换到了 webhook,因为这使 Jenkins 无法使用。对我来说似乎非常明显,如果构建已经为同一个提交运行,Jenkins 应该为项目启动新构建。但 Jenkins 只会无休止地排队新构建。
      猜你喜欢
      • 1970-01-01
      • 2017-04-28
      • 1970-01-01
      • 2012-01-13
      • 2015-06-05
      • 1970-01-01
      • 1970-01-01
      • 2012-04-24
      • 2012-04-24
      相关资源
      最近更新 更多