我有一个自动化项目构建的管道。构建是从github webhook触发的。
问题是我们的开发人员可以在几个小时内多次将更改推送到git。我们不需要如此频繁地构建。这个想法是,自上次提交以来应该过去了30分钟,在这种情况下,我们认为这是最后一次提交。
那么我如何在上一次网络挂钩30分钟后触发构建?
答案 0 :(得分:1)
可以通过使用quietperiod()
选项来最接近此行为:
pipeline {
agent any
options {
quietPeriod(1800) // Quiet period in seconds
}
stages {
stage('1') {
steps {
println("Hello")
}
}
}
}
来自插件说明:
当该选项为非零值时,该项目的新触发的构建将添加到队列中,但是Jenkins将等待指定的时间段(以秒为单位),然后才能真正开始构建。 例如,如果您的构建需要很长时间才能执行,则您可能希望阻止在大约同一时间进行的多个源代码控制提交触发多个构建。启用静默期将阻止詹金斯发现第一个提交后立即开始构建。这将使开发人员有机会推送更多的提交,这些提交将在构建开始时包含在其中。这减少了队列的大小,这意味着开发人员可以更快地获得其一系列提交的反馈,并且可以减少Jenkins系统的负担。 如果在队列中已经有某个构建并等待其静默期结束时触发了该项目的新生成,则静默期将不会重置。除非对该项目进行了参数化并且该构建具有与队列中已有的构建不同的参数,否则不会将新触发的构建添加到队列中。