2013-12-16 40 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