iT邦幫忙

2

TFS CI CD(紀錄)

在程式技術百家爭鳴的這個時代,感覺好像學習永遠都跟不上時代。
但不管怎麼變,我相信對於程式的建置部署,相對的變化性就不是這麼大了,
這邊想紀錄一下於公司內,我是如何透過 TFS 建立基本的CI CD。

因為公司政策的關係,我們是採用地端的TFS2017配合地端的VM,
雖然我是非常的想用VSTS,並搭配Azure,這樣就不用在面對升級不升級的問題了。
anyway我不是老闆

因為我是地端的關係,可能跟vsts的畫面就不盡相同了。
以下紀錄用,可能不盡詳細。


首先在專案(sln)簽入到TFS後,基本上只要新增一個CI,並保持預設,基本就可以算是完成九成了。
但如大家所預料,意外就是會接連而至的發生(compiler),況且保持預設當然不是最佳解,即使你成功的編譯。

  • compiler error log,靠自已或Google解決。
  • 專案(sln)來源路徑設定
  • web.config的配置
  • 編譯的時機點
  • 其他特別配置

基本上微軟官網就很清楚了,但實際還是要摸過才算數。
再來是CD的部份,這部份整整是花了我快一個禮拜才打通任都二脈(能力太差),大概紀錄一下細節的部份。

  • 在乾淨VM上的IIS安裝Webservice management(1)、WebDeploy(2)兩個套件,順序照1、2
  • 開通防火牆8172(default),或是在webservice manager設定你想要的port
  • 建立WebSite並將service account加到該website的user permission

以上做完算是打通Server這一關,在來就是TFS設定(也是吃了苦,太弱了)。

  • 如果source都是同一份,可建立一個或多個Environment並用server命名

  • 選用command line的task來下command

  • 如CI成功,可能有一或多個Web Package,可選擇要publish的 .cmd

  • 下參數,適用於我(光是這一行就搞死我這菜鳥)
    /Y /M:$(TestServer) /U:$(ServiceAccount) /P:$(ServicePassword) /A:Basic -allowuntrusted "-skip:Directory=\angular" "-setParam:name='IIS Web Application Name',value='$(WebSiteName)'"

  • 參數內部可能不盡相同,可以詳閱微軟的文件以符合自已的需要

  • $(***)是參數化你的變數值,可於微軟的程式庫(library)中定義

以上大致上可以完成基本的自動化建置部署,
當然還有很多細節難以用三言兩語就能表達,
希望會幫到一些人,希望有機會能用雲端來玩玩。


1 則留言

0
szcjoker
iT邦新手 5 級 ‧ 2018-05-22 11:52:47

感謝付出

謝謝

我要留言

立即登入留言