目前,当我们在流水线代码中故意设置disableConcurrentBuilds
时,在詹金斯遇到了一个问题,基本上就像
node{
properties([
disableConcurrentBuilds()
])
}
,由于服务器实例资源有限,我们需要禁用并发构建。我们发现,当执行先前的构建时,队列中将显示一个挂起的构建,但是如果发生第三次构建触发器,或者甚至在正在进行的构建完成之前发生更多的触发器,那么Jenkins将仅执行最后一个触发器当先前的构建完成时,它将忽略队列中的任何其他挂起的构建,仅执行最后一个触发器。
因为我们可以从控制台日志中看到以下内容:
Started by user xxx: Bitbucket PPR: pull request updated
Started by user xxx: Bitbucket PPR: new pull request created
我们正在使用bitbucket推拉请求Jenkins插件来触发此作业构建。你们认为这个插件可能会引起一些问题吗?
我们需要的是将所有待处理的构建保留在队列中,并顺序执行它们。更好的是,只有在bitbucket拉取请求ID相同的情况下,我们才能合并待处理的构建。