2013-12-19 75 views
0

我有一個特殊要求,在TFS 2012中設置構建定義。 我有一個大的解決方案,具有26個依賴項目。假設我們稱這些項目爲A到Z. 假設構建順序是首先構建A,然後構建B,因爲B依賴於A,然後構建C,因爲它依賴於A和B等。TFS持續集成構建觸發只有一個項目不依賴項目

A 

B <- A 

C <- A,B 

.. 

Z <- A,B,C,D,...,Y 

我的計劃是有26個不同的構建定義,以建立持續集成。 然後構建應該開始,以防萬一相關項目的源代碼發生了變化。

例如,如果我更改項目C,我不希望A和B之前構建。 但這是不可能的,因爲C的構建定義需要A,B和C的工作空間設置,否則C將無法編譯。

我現在的問題是:我怎樣才能建立那些實際上已經改變了CI的項目?

+0

你問如何在CI中增量構建? –

+0

有時很難找到一個具體問題的正確名詞,但似乎增量構建是我期待的術語。但還有一個問題,因爲增量構建可能是解決方案。如果我使用多個構建代理,如果構建控制器決定他將使用哪個代理,增量構建如何工作。如果它一直在切換,而我有4個代理,那麼代理將爲所有依賴項目最少4次獲得最新的源代碼? – Andrej

+0

當代理選擇運行構建時,代理將獲得適當的源代碼。如果沒有選擇,它什麼也不做。 –

回答

1

嘗試進入構建定義,進程選項卡。在基本下,將清潔工作區更改爲無。這將設置增量構建。這與visual studio中的Build和Visual Studio中的Rebuild類似。它只會重建已經改變的事物。

+1

它如何與幾個構建代理一起工作?每個構建代理都有自己的工作空間 – Andrej

+0

您能解釋一下「自己的工作空間」是什麼意思嗎? –

+0

每個代理在構建服務器上都有自己的目錄,它從源代碼控制獲取所有當前源代碼以編譯它。在我的具體情況下,它位於C:\ build \ $ agentnr $ \ ... 如果控制器隨機選擇要使用的代理程序,代理程序1會將源代碼下載到文件夾C:\ build \ 1 \ ..在那裏,它最初建立了項目A,B和C,因爲它是第一次。如果我第二次觸發構建,控制器將例如選擇代理2.因此代理2會將源代碼下載到C:\ build \ 2 \ ...中,因此增量構建將不起作用。 – Andrej