2013-12-16 39 views
1

我有一个工作,任何提交开始。它需要运行5-10分钟。詹金斯有没有办法阻止或减少重复工作?

但是,如果(比如说)4或5个git提交背靠背,我不希望4或5个作业运行 - 只是最后一次提交的一个作业。所以基本上,如果在构建队列中有一个类型为“X”的作业,我不希望队列中有另一个类型为“X”的作业。

回答

2

,如果您使用单片机触发,默认的工作参数,并且不查“执行并发这应该是默认的行为建立在必要时' 选项。

  1. 第一份工作是排队并立即运行。
  2. 在来源变更时,下一个工作将排队等待,直到第一个工作完成。
  3. 第三次SCM更改将检测已在队列中的作业,而不执行任何操作。
  4. 第一份工作完成后,下一份工作就会开始 - 并将在SCM启动的那一刻(不是计划的那一刻)使用SCM中的任何工作。

这种行为可以通过参数,并发构建,作业限制等来改变。我的知识也可能过时(Jenkins正在快速发展)。

附注:多个构建不一定是坏事 - 它们会给你失败的地方,这可能允许你更快地识别违规提交。 10分钟构建并不重要,但是如果你的构建比这个更大,它可能会成为一个问题(对于一个庞大的团队,你可以在30分钟内完成很多提交)。

1

基本上你只是想检查每5分钟或10分钟是否有新的提交?您可以在触发配置中执行此操作:每X分钟监控一次源代码控制(CRON语法:每15分钟*/15 * * * *)

如果每15分钟检查一次新提交是否发生,运行10分钟,你不可能有另一个执行暂停(除非有人要求“手动”构造......)。

为了避免后一种情况下,你可能会考虑Throttle Concurrent Builds plugin

+1

我喜欢这个,Cron Syntax应该是(H/15 * * * *),所以对于多个工作和多个jenkins服务器。此外,还有一个安静的时间段设置,最多可以持续一分钟或两分钟时间以实现提交突发事件。 – Electrawn