持續整合 - 部署
自動化構建和可重複構建。自動化測試和可重複測試。測試類別和測試頻率。持續檢查。持續資料庫整合。建立有效的CI環境的一系列任務主要帶來一個關鍵好處:能夠在任何時間點、任何環境中釋出可工作的軟體。
在之前的章節中,我們已經完成了以下所有部分:
- 建立了我們的程式碼。
- 確保在TeamCity中進行了正確的構建。
- 建立了資料庫整合流程。
- 進行了成功的測試。
現在唯一剩下的就是進行自動化部署,以便我們的整個流程完成。
對於我們的自動化部署,我們需要遵循以下步驟:
在我們的部署伺服器上,確保已安裝IIS。
確保IIS使用者具有訪問我們資料庫的許可權。
建立一個釋出配置檔案,該檔案將在構建站點時用於釋出站點。
確保我們更改MSBuild命令以進行自動部署。
自動化TeamCity以進行自動釋出。
執行一個**git commit**以確保所有檔案都在Git中。
**步驟1** - 配置本地IIS伺服器。如果您有本地或遠端IIS伺服器,可以執行以下配置來部署我們的應用程式。在自動執行之前,手動嘗試部署始終是一個好習慣。
**步驟2** - 在Windows 2012伺服器上,轉到伺服器管理器並單擊“新增角色和功能”。
**步驟3** - 在出現的下一個螢幕上單擊“下一步”。
**步驟4** - 在下一個螢幕上選擇基於角色或基於功能的安裝,然後單擊“下一步”。
**步驟5** - 選擇預設伺服器並單擊“下一步”。
**步驟6** - 選擇Web伺服器角色並單擊“下一步”。
**步驟7** - 在出現的下一個螢幕上,單擊“下一步”。
**步驟8** - 在出現的下一個螢幕上,再次單擊“下一步”。
**步驟9** - 在彈出的下一個螢幕上,單擊“下一步”。
**步驟10** - 在最後一個螢幕上,您可以單擊“安裝”按鈕來安裝IIS。
安裝IIS後,您可以透過開啟Internet Information Services來開啟它。
**步驟11** - 單擊“應用程式池”,您將看到一個名為**DefaultAppPool**的池。在下一步中,此池需要訪問SQL Server。
**步驟12** - 如果我們需要將ASP.Net應用程式連線到MS SQL Server應用程式,則必須向預設應用程式池授予對SQL Server例項的訪問許可權,以便它可以連線到我們的**Demodb**資料庫。
**步驟13** - 開啟SQL Server Management Studio。轉到“登入名”,右鍵單擊並選擇選單選項“新建登入名”。
在下一個螢幕中,更新以下引數並單擊“確定”。
- 登入名:IIS APPPOOL\DefaultAppPool。
- 預設資料庫 - 這應該是我們的資料庫,即demodb。
**步驟14** - 建立**釋出配置檔案**。釋出配置檔案用於在Visual Studio中建立部署包,然後可以根據需要與MS Build和任何CI伺服器一起使用。為此,從Visual Studio中,右鍵單擊專案並單擊“釋出”選單選項。
**步驟15** - 在出現的下一個螢幕中,選擇建立新的釋出配置檔案,將其命名為**DemoDeployment**。然後單擊“下一步”按鈕。
在隨後出現的螢幕中,新增以下值:
- 將釋出方法選擇為Web Deploy。
- 將伺服器輸入為localhost。
- 將站點名稱輸入為Default Web Site/Demo。
- 將目標URL設定為**https:///Demo**
然後單擊“下一步”按鈕。
**步驟16** - 在下一個螢幕中,單擊“下一步”。
**步驟17** - 在出現的最後一個螢幕中,單擊“釋出”按鈕。
現在,如果您轉到專案的**C:\Demo\Simple\Properties\PublishProfiles**位置,您將看到一個新建立的**釋出配置檔案xml檔案**。此釋出配置檔案將包含將應用程式釋出到本地IIS伺服器所需的所有詳細資訊。
**步驟18** - 現在讓我們自定義我們的MSBuild命令並使用上述釋出配置檔案,看看會發生什麼。在我們的MSBuild命令中,我們指定以下引數:
Deploy on Build 為 true - 這將在成功構建後觸發自動部署。
然後我們提到使用上面步驟中使用的釋出配置檔案。
Visual Studio版本只是為了向MSBuild部署功能說明正在使用的Visual Studio的版本。
執行上述命令時,MSBuild將觸發構建和部署過程。您會注意到,它正在將其部署到我們IIS伺服器中的**Default Website**。
現在,如果我們瀏覽到站點 - **https:///Demo/Demo.aspx**,我們將看到以下輸出,這意味著MSBuild已成功將我們的站點部署到了網站。
**步驟19** - 透過TeamCity自動化 - 現在是時候向我們的TeamCity伺服器新增一個任務,以根據上述步驟自動使用MSBuild來部署我們的應用程式。
**步驟20** - 轉到您的專案儀表板並單擊**編輯配置設定**。
**步驟21** - 轉到構建步驟並單擊新增構建步驟。
選擇以下選項:
執行程式型別應為MSBuild
給出可選的步驟名稱
將構建路徑輸入為Simple/Simple.csproj
將MSBuild版本保留為Microsoft Build Tools 2013
將MSBuild Toolsversion保留為12.0
將命令列設定為/p:DeployOnBuild = true /p:PublishProfile = DemoDeployement /p:VisualStudioVersion = 12.0
**步驟22** - 單擊“儲存”。
確保在構建步驟中,部署步驟是鏈中的最後一步。
**步驟23** - 現在讓我們做一個最終的**git commit**,以確保所有檔案都在Git中,並且TeamCity可以使用。
恭喜,您已成功為您的應用程式設定了完整的持續集成周期,可以在任何時間點執行。