我正在尝试查看是否有一个可以执行我想要的插件或者我在Jenkins触发器方面缺少的内容。为了举例说明我们想要做什么,让我解释一下目前情况如何发生。
所以上面的一切都很好,也很好用,但是我们要做的是在Jenkins获取合并后触发服务器停止和构建。虽然这是一个大型项目,有多个轨道,我们可以说在10-30分钟的窗口内完成4-10次合并。显然,我们不希望队列中有4-10个作业都运行相同的东西。
那么实现上述目标的最佳方法是什么,即基于合并的Jenkins触发器,等待x分钟,如果没有其他合并,则触发构建过程,如果新的合并重置计数器回到x分钟并等待再次?
我们可以通过Jenkins内置任何插件或触发器吗? (我找不到任何明显的东西)或者这是一个我们需要参数化构建并运行一些脚本的案例吗?
答案 0 :(得分:1)
不知道有任何插件执行此操作。但是,如果您正在使用作业类型Pipeline或愿意将其转换为Pipelines,那么以下Jenkins管道将可以解决这个问题:
// Sleep for a certain time, in this case 20 seconds
sleep(20);
// Check if there is a newer build, if there is abort this one.
if (currentBuild.nextBuild != null) {
echo "Got newer build, aborting this one!"
currentBuild.result = Result.NOT_BUILT;
return;
}
// Do the rest of building here
答案 1 :(得分:0)
您可以从URL运行以下命令,该命令可以达到目的。 https:/// build?delay = 600sec