防止 Jenkins 在构建运行时轮询 SCM (Git)

Jos*_* M. 6 git continuous-integration jenkins

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

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

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

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

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

Jos*_* M. 2

除了切换到基于 Webhook 的构建之外,没有其他解决方案可以解决此问题,这就是我们所做的,并且从未回头。