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

6
假设我有一个需要运行 5 分钟的构建,而 SCM 轮询设置为每 2 分钟运行一次 (H/2 * * * *)。如果推送了一个提交,Jenkins 进行轮询并找到更改并开始构建 #1。在经过 2 分钟并且构建 #1 仍在运行时,Jenkins 再次进行轮询,发现相同的“更改”(已经正在构建),并排队构建 #2。
我已经为项目设置了“不同时构建”。
看起来“上次构建的修订版”直到构建完成才会更新。你可以想象,如果我在同一时间排队了 5-10 个不同的项目,那么 Jenkins 就会变慢(从不同项目运行同时构建),并且对每个项目进行轮询将继续为已排队或正在构建的相同提交添加另一个构建。
我如何在同一项目正在构建时禁用轮询?(将轮询更改为每 5 秒钟检查一次并不是正确的解决方案。)
简而言之,我不希望我的 Jenkins 项目在它们已经在构建或者正在排队的情况下进行轮询。
2个回答

2

除了切换到基于webhook的构建方式外,我们没有其他解决这个问题的方法。而事实上也正是我们采取了这种方式,并从未后悔过。


1

1
嗯,我们无论如何都转向了Webhooks,因为这使得Jenkins无法使用。对我来说似乎非常明显,如果已经有一个构建正在运行相同的提交,则Jenkins不应该为该项目启动新的构建。但是Jenkins只会无休止地排队新的构建。 - Josh M.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接