2011-09-13 33 views
4

最近一直在嘗試設置生成服務器以幫助自動化我的部署。TeamCity自動生成到生產

我的問題是是人在使用構建服務器像TeamCity的推更改生產(WebDeploy)服務器(以及測試服務器)?如果是的話,你每次都要通過源代碼控制進行重建,或者使用你推送到測試服務器的構建文件(在構建測試服務器時還必須創建所有web.configs)。

+1

最好的資源我遇到任何幫助: HTTP://www.troyhunt。 com/2010/11/you-deployment-it-wrong-teamcity_26.html#comment-308937644 – user203538

+0

Google「teamcity msdeploy」,您將找到大量關於如何設置的資源。例如[http://www.agileatwork.com/automatic-deployment-from-teamcity-using-webdeploy/](http://www.agileatwork.com/automatic-deployment-from-teamcity-using-webdeploy/) – terjetyl

回答

3

它一般是用同一套您的測試環境中生成的部署爲您督促部署構建文件是一個好主意,因爲這是你能保證什麼地方到構建將是一致的唯一途徑(即在兩個版本之間可能已經在構建服務器上安裝了某些東西,或者您的VCS可能會返回一組稍微不同的源代碼文件)。

這是最好的TeamCity與使用構建工件,其收穫的您構建成一個特殊的存儲區域,讓他們輸出的實現,以供以後使用另一個構建配置中提取。在TeamCity的文檔http://confluence.jetbrains.net/display/TCD6/Build+Artifact

更多信息至於你的configs去,可以考慮使用配置轉換。這些允許您爲每個目標環境使用不同的Web.config,使用不同的連接字符串,環境常量等。有關MSDN的更多信息http://blogs.msdn.com/b/webdevtools/archive/2009/05/04/web-deployment-web-config-transformation.aspx

如果您實際上打算使用TeamCity部署到生產環境,可能需要考慮使用TeamCity權限來鎖定這些設置,以便只有受限制的組纔有權運行這些構建配置(在我們的商店中,這實際上是確保Dev和Ops團隊之間職責分離的必要條件)。作爲一個額外的預防措施,建立一個單獨的構建代理只是爲了你的Prod構建,並保持禁用,直到你需要它(防止你意外運行一個prod構建配置......是的,我一直在那裏嘆息)。

0

在我們使用的第一CruiseControl.net後來的TeamCity推動改變我們的測試服務器以前的項目,我們使用了一種特殊的惡性目標觸發部署。

在TeamCity的,我們有一個積累的項目(或它在TeamCity的稱爲目標嗎?)只用手動啓動觸發安裝。

安裝使用安裝我們的MSI軟件包的遠程PowerShell腳本完成。

0

我決定嘗試一個MSBuild腳本,它將所有配置轉換爲一個位置,然後我試圖創建一個包(因爲我不想將它作爲zip文件進行存檔,所以我是我)在此刻掙扎着)。

所以我有這樣的:

1 TeamCity的配置:

  • 變換分析網絡。CONFIGS
  • 構建以位置
  • MSDeploy於TEST

第二構建配置|

  • MSDeploy生產與構建文件和現場配置

與實現這一目標將不勝感激