2013-01-22 36 views
13

我不想讓Build Config A和Build Config B同時運行,這可能是因爲我有多個代理。這些配置的運行順序並不重要,它們甚至不是同一個TeamCity項目的一部分,每個項目都針對不同的SVN存儲庫。但是,如果同時對每個回購進行登記,他們可能同時運行。TeamCity:防止2個版本同時運行

相反,我想要一個配置只是等待另一個完成。例如,如果構建配置B開始運行,但構建配置A已經運行,則B將等待A完成,然後運行。

我不認爲快照依賴將工作,因爲它假定一個配置有一個依賴於另一個在我的情況是不正確的。

+1

爲什麼他們不能獨立運行?他們會通過共享資源互相干擾嗎?你能把他們釘在同一個代理人身上嗎? – Matt

+0

這些構建是否總是一起運行?如果是這樣,您可以從其中一個版本中刪除所有構建觸發器,併爲其分配一個完成構建解決方案。這將在構建完成後將構建B排隊。也就是說,我仍然喜歡Matt的建議,強迫他們都使用同一個構建代理。 –

+0

由於共享資源,它們無法獨立運行。理想情況下,我會找到一種解決方法,但它會需要一些重新配置,所以我希望至少暫時防止它們同時運行。 – Keith

回答

9

對於快速而骯髒的情況,只需在項目的兼容代理程序選項卡上進行規則即可。他們必須運行包含xxx的代理名稱(不管那是什麼),那些構建只能在該代理上運行,並且永遠不會同時運行。

+2

我想如果TeamCity只是針對構建配置有一個選項,即默認情況下啓用「啓用同時構建」,那將會很不錯。無法想象它會是一個難以編寫的插件,如果我有時間,也許我會放棄它 - 但是,在此期間,這種解決方法比可接受的更好:) – James

10

Keith,有兩個插件可以幫助你: 第一個是Groovy plugin。它具有在所有項目上創建名稱鎖定的功能。第二個是TeamCity.SharedResources。它具有definig共享資源的功能,並通過讀寫鎖定來鎖定它們。但是,此插件中定義的資源是按項目定義的。我們正在積極開發此插件,因此歡迎您訪問our tracker

+0

從v8.0開始,共享資源與TeamCity捆綁在一起,因此現在似乎是正確的答案。 –

相關問題