iT邦幫忙

DAY 22
3

使用Asp.Net MVC打造Web Api系列 第 22

使用Asp.Net MVC打造Web Api (22) - 使用TFS進行每日自動建置

在多人協同開發的環境之中,擁有一套持續整合伺服器(CI Server)也是很重要的,我也在去年的鐵人賽寫過一系列如何使用Jenkins打造.Net CI Server的文章。透過CI Server,可以確保在版本控制系統中的程式碼是可靠的,我們會在CI Server上設定建置、單元測試等工作,並且每天觸發執行,讓版本控制系統中的程式碼在一個乾淨而且獨立的環境中進行這些工作,如果執行失敗則會發出通知,讓開發人員可以即時處理,這麼一來不正確的程式碼不會存在版本控制系統中,也就不用害怕會有程式無法使用的情況發生了!今天我將向大家介紹如何使用Team Foundation Service(TFS)來執行專案的每日建置。
※在TFS上建立專案
TFS目前開放免費使用,未來在5人以下也可以免費使用,關於費用的細節大家可以參考官方網站,我們可以直接透過Windows Live帳號來開啟服務。

  1. 進入TFS個人主頁,選擇新增專案(版本控制使用git)

  2. 輸入專案資訊並建立專案

  3. 等候一下之後建立成功,進入專案首頁

  4. 點選Code標籤,準備將我們得程式碼簽入版本控制系統中

  5. 設定GIT權限,點選右上角的My Profile

  6. 選擇CREDENTIALS, 並選擇Enable alternate credentials,設定好帳號密碼並存檔

  7. 在專案資料夾打開command line使用以下指令將專案push到TFS上 (原本需已有Git)

        git remote add origin https://xxx.visualstudio.com/DefaultCollection/_git/ApiSample
        git push -u origin --all
    
  8. 上傳成功後,可以在TFS看到專案的程式碼

※新增每日建置工作

接下來我們要在TFS上進行每日建置工作,設定每日建置來確保程式碼的健康

  1. 打開Visual Studio,選擇連接到Team Foundation Server
  2. 在Team Explorer選擇連接
  3. 點選伺服器
  4. 點選加入,輸入個人首頁位址
  5. 選擇ApiSample專案,點選連接
  6. 點選組件標籤
  7. 選擇新增組件定義
  8. 在一般頁籤,輸入建置名稱及資訊
  9. 點選觸發程序,這邊選擇每天建置,大家可以依照自己需求調整
  10. 來源設定選擇Master分支
  11. 流程設定輸入解決方案名稱,並且指定建置Release版本,也允許單元測試執行
  12. 儲存之後,應該可以在Team Explorer看到組建,我們選擇佇列新組建來建置看看
  13. 我們不調整設定直接開始建置
  14. 可以看到建置準備進行中
  15. 點選建置詳細過程可以看到正在進行
  16. 建置成功可以看到建置結果,並且看到單元測試是通過的,這樣可以確保修改的程式碼都有通過測試。
  17. 點選測試結果還可以看到更多詳細的內容

※本日小結
經過了簡單的幾個步驟,我們讓我們的程式碼每天都會進行建置和單元測試,這就有如一套防火牆來確保我們的程式碼並沒有因為新的修改而造成任何損壞,這麼一來大家就不需要擔心會有人簽入了無法建置的程式碼,或是改壞原本正常的程式碼了!透過CI Server的整合,更甚至可以在每次push的時候就進行建置,這樣更能夠快速的反應新簽入的東西是否有異常,未來有機會的話會再跟大家分享TFS好用的功能,關於今天的內容,歡迎大家一起討論 ^_^


上一篇
使用Asp.Net MVC打造Web Api (21) - 發行網站到Azure
下一篇
使用Asp.Net MVC打造Web Api (23) - 建置Stage環境及組態轉換
系列文
使用Asp.Net MVC打造Web Api30

2 則留言

0
player
iT邦大師 1 級 ‧ 2013-10-22 16:26:52

使用TFS進行每日自動建置?
怕會有風險
要是Source Code有Bug
自動建置失敗的話, 網站或應用程式會掛掉吧?

kirkchen iT邦新手 3 級 ‧ 2013-10-22 16:55:26 檢舉

自動建置不等於自動Deploy喔!

自動建置的目的是確保版本控制系統中的程式碼是可以建置和通過單元測試,
如果程式有Bug不能建置,或是新簽入的程式碼不能通過單元測試,
隔天就會看到建置報告上是失敗的,
這麼一來就可以馬上發現版本控制系統中的程式碼有問題,
並且馬上進行修復,算是一種預防性的機制,
也不會有那種要重新建環境時,才發現版本控制系統中的程式碼早就是無法建置的情況發生!

我要留言

立即登入留言