2012-02-13 40 views
1

我在我的公司使用TeamCity進行持續集成,我們在TeamCity的相同服務器中使用Mercurial和中央存儲庫。如何使用DCVS中的CI工具和中央存儲庫?

我們將TeamCity設置爲在中央存儲庫中獲取.sln(解決方案文件)以構建項目。

但是,當某些開發人員推動某些更改時,中央存儲庫不會自動更新。然後,TeamCity檢測存儲庫中的更改並獲取中央存儲庫中的舊版本進行構建。中央存儲庫中的文件是舊的,直到我手動更新。

我應該如何使用DCVS中的CI工具與中央存儲庫一起工作?

編輯:

根據的評論。這是我的TeamCity配置:

enter image description here

enter image description here

enter image description here

我發現這個問題:

我所用,而不是目錄的中央資料庫的路徑TeamCity結帳。

方案文件路徑:應該是:的src \ BMGChip.sln(相對於檢出目錄中C:\ TeamCity的\ buildAgent \工作

+1

開發人員在哪裏推動?它不是中央存儲庫嗎? – Alan 2012-02-13 20:47:07

+0

@Alan是的,但中央存儲庫中的文件是舊的,直到我手動升級。 – 2012-02-13 20:54:27

+0

如果您的開發人員推送到TeamCity正在觀看的同一個中央存儲庫,則它將起作用。 「手動升級」是什麼意思? – jrummell 2012-02-13 20:57:49

回答

2

爲了有效,你的CI應建設針對開發人員將更改推向的任何地方。另外,如果您要將更改手動提交到中央存儲庫,則應該設置CI以將該分支構建爲weel。

不知道你的項目是如何構成的全部細節,單程設置CI可能是:

開發商推他們的變更到一個共享的分支上的中央存儲庫。 CI設置爲觀察這個分支,並且任何時候推動變更集時,CI啓動構建。

如果構建良好,則可以手動將分支合併到項目的「主」分支。 CI也設置爲觀察該分支,並啓動構建以驗證合併是否成功。

這個主題有不同的變化 - 例如開發人員推送到構建的功能分支,如果構建成功,則會自動合併到共享的開發分支中。總體思路是:你的中央倉庫中的任何共享分支都應該有CI設置來觀察它,因爲在某個時刻,應該有一個分支準備發佈(禁止任何手動測試等)。

+0

請參閱更新... – 2012-02-14 13:17:59

相關問題