假设我有一个运行5分钟的构建,并且SCM轮询设置为每2分钟运行一次(H/2 * * * *
)。如果推送了提交,Jenkins会轮询并找到更改,然后开始构建#1。 2分钟后,构建#1仍在运行,Jenkins再次轮询 ,找到相同的“更改”(已在构建),并将其排入构建#2。
我为项目设置了“不同时构建”。
在构建完成之前,似乎没有更新“上次构建的修订”。您可以想象,如果我大约同时在5-10个不同的项目中排队,那么Jenkins将会变慢(运行来自不同项目的同时构建),并且对每个项目的轮询将继续为同一提交添加另一个构建,已经在排队或正在建设中。
在构建同一项目时如何禁用轮询? (改为改为每5分钟检查一次是不合适的解决方案。)
TL; DR 我不希望我的Jenkins项目在已经构建或正在排队的情况下进行轮询。
答案 0 :(得分:1)
几年前,詹金斯(Jenkins)项目拒绝添加此功能:
https://issues.jenkins-ci.org/browse/JENKINS-8950-如果构建正在运行,则禁用轮询。
答案 1 :(得分:1)
除了切换到基于Webhook的版本外,没有其他解决方法,这是我们所做的,并且从不回头。