2010-12-17 25 views
2

所以這是一個類似的問題: Triggering upstream project builds before downstream project哈德森構建順序不同時簽入表彰依賴

但我不希望那個傢伙是要求全有或全無的行爲,我只是想哈德森建設項目按照正確的順序排列,所以我們不會收到虛假報警失敗的版本。

我們有兩個項目,一個取決於另一個。如果我們對兩個項目同時簽入(如果依賴項目沒有首先構建依賴項,那麼依賴項目會失敗),Hudson似乎隨機選擇一個項目,所以有時我們得到失敗的構建,然後另一個項目成功構建,然後重試在另一個項目上成功。

哈德森是足夠聰明,從行家聚甲醛弄清楚是什麼是上游和下游,甚至知道打造下游的東西,當上遊的變化,但它不知道下游前興建上游的東西如果他們都改變了的話。

是否有配置設置我錯過了? 「在其他項目建成後進行構建」似乎只是它已經爲上游項目所做的手動版本。

+0

可能的重複:http://stackoverflow.com/questions/4022354/how-to-delay-a-hudson-build-until-its-dependencies-are-built – 2010-12-20 18:32:22

回答

2

根據Advanced Project Options你有quiet period。爲你的第一次建造安靜的時間爲5秒,第二到2分鐘。這應該做的伎倆。你也可以嘗試5秒和10秒,我只選擇5和120,因爲哈德森將不會比每分鐘更頻繁地檢查變化。我不知道svn檢查是如何實現的。因此2分鐘將確保您的第一個項目至少在第二個構建開始之前檢查一次。 (假設:兩項工作每分鐘檢查一次SVN更改)

您還需要確保兩個作業不同時運行。所以我會使用Block build when upstream project is building(也是高級選項)來確保它們不是同時生成的。你也可以先試試這個選項,可能這個選項已經夠用了。

0

如果兩個項目都屬於同一個maven父項目,那麼這個maven父項目只需要一個hudson作業。 - 您不需要任何上游或下游依賴關係。

0

我面臨同樣的問題。不幸的是,這似乎是一個已知的bug,即當使用多個執行程序/節點配置hudson服務器時,Block build when upstream project is building選項不起作用。

http://issues.hudson-ci.org/browse/HUDSON-5125

一種解決方法,可以使用Naginator Plugin其可以構建失敗後重新安排一個構建。

+0

該bug現在有一個說明它是固定的自2010年9月左右開始。 – James 2013-04-12 06:09:43