2016-05-06 32 views
0

我們有一個很長的運行構建,我們正在嘗試將其分解爲增量構建。該代碼是C#/。NET與詹金斯作爲構建管理和TFS(VisualStudio的在線作爲源控制)您可以通過jenkins配置增量構建TFS

所以架構會是什麼樣子:

  1. 區1(1個或多個解決方案)
  2. 2區(1個或多個解決方案)
  3. 3區(1個或多個解決方案)

這樣的想法是,如果代碼是在1區檢查中,僅針對該區域相關的解決方案構建和測試該區域正在運行。然後,我們也將有一個每晚構建,建立一切。

我的問題是,Jenkins/TFS可以檢測哪個區域的代碼已經簽入並將一個變量(或變量列表)傳遞給構建腳本,告訴它構建/測試哪些項目?

+0

什麼是TFS服務器的詳細版本?你的意思是你只是在網上使用visualstudio嗎?你使用的是什麼構建系統? VNext或XAML? –

+0

只需使用visualstudioonline,不需要TFS服務器。並使用MSBuild腳本執行構建(通過Jenkins中的MSBuild任務) – jazza1000

回答

1

Visual Studio Team Service(Visual Studio Online)支持Git和Team Foundation版本控制(TFVC)。

如果您使用TFVC進行版本控制,VSTS可能會檢測到哪個區域的代碼已被簽入。但是,它不能告訴Jenkins哪個區域已更新和構建。所以另一種方法是爲三個區域創建三個Jenkins作業,並由三個VSTS服務鉤子觸發。

例如,您在 「測試」 項目三個區,這樣的文件夾結構將是:

$ /測試

--- /區域1

------ /項目對接洽談&解決方案

--- /區域2

------ /項目對接洽談&解決方案

---/Area3中

------ /項目對接洽談&解決方案

您可以創建一個詹金斯服務掛鉤區域1如下,以觸發區域1的詹金斯工作: enter image description here

在Jenkins中,更新Area1作業的設置以獲取Area1的源文件: enter image description here

現在,只有在檢入Area1中的代碼時, Jenkins可以觸發Area1的工作。重複上述步驟配置Area2和Area3的設置。

如果您使用Git進行版本控制。無法通過Git存儲庫中的區域文件夾來觸發構建,因此需要將這三個區域分開,並將它們放入三個Git存儲庫中。