2017-03-01 64 views
1

我使用自動化V10的TeamCity我的.NET核心解決方案的構建:持續集成:構建流水線的依賴.NET

可以說我有以下項目:

甲 - >乙 - 「ç - > d

A-> d

的箭頭表明,項目B引用項目A和需要它來進行恢復和前建成。

配置

項目d是具有在結束時發佈的Web應用程序(它也需要C和A)

  • 對於工作,我創建了一個團隊城項目每個A,B,C,d
  • 。然後對每一個項目我創建了一個包含兩個步驟的構建定義重新建造
  • 的恢復和建設步驟指定SPE的project.json文件(例如在項目B的情況下,它將是「src \ B \ project.json」
  • 我爲項目D添加了額外的步驟,這是發佈,因爲它必須發佈到IIS。

快照依賴

任何建議都是引用應該觸發建立在相關的項目,以確保變化不會引起其他項目突破的項目。

對於這種情況,我創建了以下快照依賴條件:

  • B具有對依賴於快照依賴性和成品生成觸發
  • C具有對依賴於乙快照依賴性和成品生成觸發
  • d具有快照取決於C和A以及成品打造專業化上這些依賴

觸發器如果我觸發甲構建,它的觸發另一個b網構建鏈上的練習(即A→B→C→D)。

然後,如果我觸發C,它的觸發只有D.

但是如果我從B或C啓動而不必做第一的觸發,B的積累,因爲它需要項目A輸出首先出現故障。

問題:

  1. 創建配置的步驟,我在做正確的方式,考慮到我的其他項目(F,G,H),也指和B.
  2. 如果需要開始構建項目B,如何將其配置爲首先構建項目A,如果該項目之前未構建的話。

回答

1

解決方案是配置從B到A,從C到B,從D到C的快照依賴關係。但是,從D到A的依賴關係過多,因爲整個生成鏈運行在相同的修訂版。

如果構建B被觸發,那麼所有構建鏈(A和B)應該。可以有一個選項「不要運行新的版本,如果有合適的」啓用。 在這種情況下,構建B將重用合適的構建A(如果存在)。

關於觸發器:

  • 它不推薦使用完成觸發在這種情況下。要觸發 整個構建鏈,那麼我們應該運行構建D,以便它將 添加到隊列中的整個鏈中。
  • 要根據VCS根目錄中的更改自動觸發構建鏈, 在D構建配置中僅配置一個VCS觸發器,其中包含選項 「觸發快照依賴性更改」。

在這種情況下,如果任何版本(A,B,C或D)中存在VCS更改,整個生成鏈將被觸發。