2017-05-31 100 views
0

我目前正試圖實現完成構建觸發器和快照依賴關係,以在任何時候依賴項發生更改時啓動構建。但是,我的構建配置有點複雜。例如,我可能有一個構建配置,看起來像TeamCity完成構建觸發器Hiearchy

此圖片。

This Picture

我想有這3例符合:

  1. 構建d揭開序幕構建B和C,然後要麼B或C揭開序幕構建A.確保B和C在A被觸發前完成。
  2. 如果構建D未運行且B運行,則只啓動構建A.
  3. 如果構建D未運行且C運行,那麼也只能啓動構建A。

換句話說,我想這些序列的構建:

  1. d - >(B和C) - >甲
  2. B-> A
  3. C->甲

有沒有辦法做到這一點?

+0

您是否在構建期間如何更改nuget依賴項版本或者如何在teamcity中設置觸發器? (如果兩者,你可能想考慮拆分..) –

+0

嗨,我想知道如何設置構建觸發器的分層次序。我重新提出了我的問題,以便更清楚。謝謝你的幫助! –

回答

0

幾乎所有你想要實現的可能只是使用快照依賴關係的一個小例外 - 觸發A B或C. 快照依賴關係中有一條規則 - 該配置的構建將在所有依賴關係之後運行建成。這意味着我們可以使用操作(由B和C觸發A),但不使用(觸發A由B C)。

所以要在D之後觸發B,您需要在D上爲B添加快照依賴關係。對於C也是如此。 對於其他構建也是如此。

可以使用Kotlin DSL自定義構建觸發,它可以幫助您實施操作。但是,這不是TeamCity的開箱即用功能。

另一個解決方法是有2個版本的A版本。其中一個將由B構建(它將對B具有快照依賴性)以及另一個由C構建(其將對C具有快照依賴性)來觸發。 要減少重複,您可以將所有A邏輯提取到模板中。所以2個副本將具有不同的依賴關係,但其他所有內容都將在模板中定義。

相關問題