2012-02-16 74 views
2

我在Jenkins設置了項目A和項目B.項目A自豪地獨自站立。但是,項目B的測試依賴於A的實時服務器實例。Jenkins/Hudson中的跨項目依賴關係

問題:當項目A部署時,它將服務器關閉幾十秒。如果項目B當時正在進行測試,他們會受到束縛,耶穌會哭泣。

我知道了以下解決方案:

  • 存根出在B的測試。 (太複雜,不會發生,無論如何都是集成測試。)
  • 使B在Jenkins中成爲A的依賴。 (意思是我們不能先測試B)
  • 做一個交錯部署的A,所以總是有一臺服務器在池中。 (我們正在看這個,但並不是微不足道的。)

但是有沒有Jenkins解決方案?我想說「不要運行任務部署A如果任務測試B正在運行」,但我不能找出一種方法來做到這一點,而不實際合併構建。

+1

看來A是B的依賴關係:你讓它們顛倒了。 – dolmen 2012-04-17 11:50:27

+0

是的,B依賴於A,但據我所知,在Jenkins-land中沒有辦法表達這種關係(或者更具體地說,「不要在A做某事時建立B」):你只能做B完成後啓動B。 – jpatokal 2012-04-18 04:11:34

回答

3

我知道的兩種解決方案。

  1. 使用Locks and Latches Plugin,並使用在兩個作業一個相同的鎖和B
  2. 使用Throttle Plugin與類別,並使用相同的類別A和B.

都在這兩種情況下, ,A和B都不能同時運行。

+0

現在鎖定和鎖存似乎已被棄用。 – TesterJeff 2013-07-23 15:14:05

+1

油門插件是首選;提供更多靈活性。 – 2013-07-24 17:36:41

+0

到目前爲止,Throttle Plugin一直在爲我工作。謝謝。 – TesterJeff 2013-07-24 22:42:33