我有一份任何提交都会开始的工作。运行需要5-10分钟。
但是,如果(比如说)4 或 5 个 git 提交连续出现,我不希望运行 4 或 5 个作业 - 只是最后一次提交的一个作业。因此,基本上,如果构建队列中存在“X”类型的作业,我不希望队列中存在另一个“X”类型的作业。
如果您使用 SCM 触发器、默认作业参数,并且不选中“必要时执行并发构建”选项,那么这应该是默认行为。
可以使用参数、并发构建、作业限制等来改变这种行为。我的知识也可能已经过时了(Jenkins 发展得非常快)。
旁注:多个构建不一定是坏事 - 它们为您提供失败局部性,这可能使您可以更快地识别有问题的提交。对于 10 分钟的构建来说这并不重要,但如果你的构建变得比这个大,那就可能是一个问题(对于一个大团队,你可以在 30 分钟内进行大量提交)。
基本上你只是想每 5 分钟或 10 分钟检查一次是否有新的提交?您可以在触发配置中执行此操作:每 X 分钟监控一次源代码控制(CRON 语法:*/15 * * * * 每 15 分钟一次)
如果您每 15 分钟检查一次是否发生新的提交,并且您的作业只需要 10 分钟即可运行,那么您就不可能有另一个待执行的执行(除非有人要求“手动”构造......)。
为了避免后一种情况,您可以考虑使用 Throttle Concurrent Builds 插件
我的客户要求是每一分钟检查一次导致问题的原因 如果我的管道仅触发一次提交,有什么方法可以避免吗?