使用Visual Studio Team Services持續集成(一)——構建ASP.NET Core
概述
持續集成(CI)是將代碼儘量頻繁地集成到共享倉庫中的過程。在代碼集成期間,構建中斷或測試失敗能夠及時地通知代碼中的錯誤。html
當許多開發人員在複雜的軟件項目上進行協做時,將代碼的不一樣部分集成在一塊兒多是一個漫長而不可預測的過程。可是,若是持續地構建和部署項目,可使這個過程更加高效和可靠。git
Visual Studio Team Services簡化了應用程序的持續集成過程,不管目標平臺是什麼,或者使用的是什麼語言,VSTS Team Build容許:github
- 在Linux,Mac和Windows上構建
- 使用私有的或託管的(Azue)構建代理
- 爲Android、iOS、Java、.NET等應用使用多平臺構建代理
- 與工做、測試、編碼、構建和發佈的無縫集成
- 經過實時構建狀態跟蹤構建
前置條件
要完成這個實驗室須要:web
若是沒有使用VSTS Demo Data Generator,能夠從GitHub倉庫中複製代碼。npm
練習1:構建ASP.NET Core
ASP.NET Core是一個用於構建web和雲應用程序的精簡和可組合框架。這裏將展現如何自動構建HealthClinic ASP.NET Core應用程序。json
若是使用演示生成器提供的項目,那麼構建定義應該自動建立。能夠在不添加或修改任務的狀況下了解在VSTS中構建管道是如何工做的。不然,能夠按照如下步驟建立一個新的構建定義。gulp
任務1:建立新的構建定義
1.從VSTS賬戶概述頁面,選擇團隊項目。
2.點擊Build and Release選項卡並選擇Builds
3.點擊New建立構建定義
4.能夠從選擇一個模板開始,該模板將添加一組任務,爲正在構建的應用程序應用典型的設置,或者從一個空白的過程開始,從頭開始構建。有一個用於構建ASP.NET應用的模板。接下來將使用它。選擇ASP.NET Core (PREVIEW)並單擊apply應用構建定義的模板。
5.如您所見,該模板已經應用了一組典型的關注構建ASP.NET core應用程序的任務。在不少狀況下,可能不須要作任何其餘事情,僅僅是指向正確的repo和branch就能夠了。在這種狀況下,須要對構建進行一些定製。選擇Get sources任務。能夠從各類源(包括GitHub、SVN或任何其餘Git倉庫庫)獲取代碼,可是因爲在VSTS項目自己中有對應的代碼,因此選擇這個項目。若是沒有指向正確的倉庫和分支,請更改它
6.下一個任務Restore不須要更改
7.保存構建定義——將它命名爲MHC.Web.CI
My Health Clinic web應用程序依賴於節點組件和其餘的庫。須要添加任務來下載和安裝這些包,而後才能構建。在接下來的任務中,咱們將看到如何將任務添加到構建定義中。app
任務2:添加構建任務
從團隊項目中刪除未使用的repo,以組織項目的源代碼。框架
1.選擇Add Task以後選擇Package查找與該類別相關的任務,選擇npm並點擊Add。將其放置到Build任務後
2.將工做文件夾更改成src/MyHealth.Web。該項目有一個json文件,npm安裝命令經過他知道須要安裝哪些包
接下來,您須要運行bower來安裝web包。可使用Command Line/Shell Script工具運行Bower命令,可是更好的方法是使用Bower任務。這個任務不是現成的,須要從市場上安裝。asp.net
從另外一個選項卡,導航到市場上的Bower extension page並安裝它。當完成返回到正在編輯構建定義的選項卡時,關閉該選項卡。
1.保存構建定義並刷新頁面。應該在Package選項卡下看到Bower任務。選擇該任務並單擊Add。
2.選擇Bower任務並更改Bower JSONPath指向MyHealth.Web 文件夾下的bower.json文件。
3.接下來須要gu重點內容lp任務。選擇Add Task,並查找Gulp from the Build**部分,將其添加到構建定義中。
4.更改Gulp file path指向MyHealth.Web文件夾下的的gulp文件。
5.其他的任務不須要任何更改。已經準備好運行該構建。可使構建做爲一個持續集成(Continuous Integration)構建運行,以便在分支上的每一個簽入都會觸發其運行。稍後咱們將在實驗室中看到。如今,咱們將手動運行它。
6.選擇Save & queue來保存構建定義並當即對構建進行排隊。若是已經保存了構建定義,從菜單中選擇Queue。
7.須要選擇要運行此構建的構建代理。能夠選擇在一個前提代理上運行構建,或者使用託管在Azure上的代理。咱們將使用Hosted VS2017代理,由於它擁有.NET core框架和構建應用程序所需的全部其餘組件。
8.將看到構建等待尋找代理運行。它可能須要幾分鐘,而且一旦獲得一個代理,構建就會開始執行。當構建運行時,能夠實時看到輸出日誌。若是須要進行更深刻的分析,還能夠後續下載日誌。
9.完成全部步驟以後,能夠在頂部選擇構建編號(Build number)以得到運行的詳細信息。Summary選項卡顯示了運行的摘要,包括誰觸發了它,在什麼時間,獲取了哪些代碼和提交,相關的工做項,測試等等。
10.Timeline視圖將幫助您找出運行的每一個任務的時間。若是構建定義包含發佈任務,若是有任何文件被髮布,能夠從Artifacts選項卡中找到它。
咱們將瞭解構建中如何處理變量、設置不一樣的觸發器機制等等。
動手實驗