[Gulp][.Net Web Application][CI] 最終篇: Team City 設定 與 Build Scripts 撰寫

前言

個人實作 .Net Framework 、.Net Core 持續整合流程,並整合前端佈署至CDN整體流程後,深感製作自動化流程隨著技術創新,變得越來越簡便。尤其是 .Net Core 部分,Restore, Build, Test部分都可以以自身指令執行,不需要額外引入套件與撰寫指令,只需要實作 Deploy 部份,這讓我非常的驚訝(但這部分就不在此系列贅述,而會在.Net Core系列文進行說明),也感嘆科技進步神速。

此外,這篇文章是這系列最後一篇,個人覺得後面幾篇文章表達方式比較不好,近期內會逐步修正部分內容,讓有興趣的人更容易理解,請多包涵。在此也感謝花費時間觀看此系列文章的所有人,若有觀念錯誤或建議請各位先進不吝指教。

...繼續閱讀 »

[Gulp][.Net Web Application][CI] Gulp CI Deploy (2) - 使用 MSDeploy (WebDeploy) 進行 Deploy

前言

在上一篇,我們透過 Gulp Robocopy 套件進行網站佈署,而本篇我們將使用微軟的Web Deploy 進行網站佈署。不同於 Robocopy ,網頁伺服器目標資料夾需要開放編輯權限(若開放所有使用者讀寫權限,可能有些安全性的疑慮),Web Deploy 則是使用Windows Service (透過 port 8172) 協助進行佈署。理所當然,因為是第一次使用CI流程,過程中遇到許多IT問題,這此也一併記錄下來,提供各位與未來自己設置的時候參考使用,若有觀念錯誤或者建議請各位先進不吝指教。

...繼續閱讀 »

[Gulp][.Net Web Application][CI] Gulp CI Deploy (1) - 透過Gulp : Robocopy 進行 Deploy

前言

執行完 Restore, Build, 與 Test 後,接下來進行的工作是 Deploy。Deploy 實作的方法有許多種,並沒有哪一種方法是最正確的。在這系列文章中我們使用robocopy 與web deploy 兩個套件完成這項工作。無論使用哪一個套件,都有些限制與前置作業需要進行。Robocopy 使用上相當簡便,但 Team City Agent 必須"找得到"要佈署的伺服器,透過分享資料夾與設定權限的方式,將程式複製過去後完成佈署。如同第一篇我們所顧慮的,複製期間若沒有實行關機,進行操作的使用者可能會收到錯誤訊息,故我們將不直接將資料傳輸到目前運作版本的資料夾內,而是使用建立新版本資料夾後,更改實體路徑的方式,降低系統運作中發生錯誤的機會。

若有觀念錯誤或者建議請各位先進不吝指教。

...繼續閱讀 »

[Gulp][.Net Web Application][CI] 透過 Gulp:gulp-nunit-runner 進行 Unit Test

前言

陸陸續續從 Net Framework Fake CI,轉到了 Gulp CI,繼續轉往 .Net Core + Gulp CI 的,最後仍需要整合 Front end CI 部分,一路走來有挺身的感觸。 做持續整合就像是造橋舖鐵軌蓋捷運,工人需要處理許多基礎建設與技術,才能讓乘客舒適又快速地到達目的地,提供遊客更好的服務品質(自動測試、自動佈署、前端避免cache處理與自動刪除舊版程式...等),讓開發人員專注於程式開發。
當然,不免要碎碎念一下.... 
建構 CI 的過程中碰了不少壁,維護需要應付許多雜事,當 CI 掛掉的時候,所有人等著維修好的感覺真的很歡樂 ,所以請善待處理 CI 的工程師(笑)。

...繼續閱讀 »

[Gulp][.Net Web Application][CI] 透過 Gulp:gulp-msbuild 進行 Build Project

前言

本篇主要說明如何使用gulp-msbuild套件進行專案建置,除了在建置需注意是否安裝了
.NET Tools、 .NET Framework與相關套件,也需注意msbuild指令中的設定。個人過去
對於msbuild指令中的屬性設定較不熟悉,過程中查了資料才漸漸了解相關設定(如更
新web.config內容、產生publish資料...等),若有觀念錯誤或者建議請各位先進不吝指教。

...繼續閱讀 »

[Gulp][.Net Web Application][CI] 方案結構與透過 Gulp 進行 NuGet Package Restore

前言

在幾乎完成 Gulp 實作 .Net Web Application 持續整合時,正巧遇上 Visual Studio 2015
Update 3 release,開發團隊成員也陸續進行升級。因為這次是新的專案,開發初期套件
更動較頻繁,很快發現專案進行 package restore 的過程中,出現部分套件相依錯誤或者
找不到某些套件的錯誤 (猜測是 Nuget 升級的關係),個人將進行Visual Studio升級後解
決了這個問題。而CI部分下載並更換最新的 Nuget.exe 即可正常運作。
本篇文章將簡單介紹如何透過 gulp套件執行 Nuget.exe ,替專案進行 package restore。

...繼續閱讀 »

[Gulp][.Net Web Application][CI] 流程簡介、代入參數與修改AssemblyInfo

前言

本篇介紹 實作流程 與 如何安裝與使用套件 :

  1. yrags: 取得指令中的參數,包含:
               1.佈署版本號碼 (1.0.0.1)
               2.佈署的方式 (dev, qa, staging, prd... etc.)
               3.專案名稱 (WebAPI, BO... etc)
  2. gulp-dotnet-assembly-info: 更改每個專案中的 AssemblyInfo.cs 內容
...繼續閱讀 »

[Gulp][.Net Web Application][CI] Gulp 基礎介紹

前言

雖然目前已經有數個持續整合的流程,且運做得相當穩定。在新的專案,Team leader 希望嘗試使用 Gulp 來進行.Net MVC Web Applicatioon 持續整合,讓我這次機會從頭到尾的撰寫持續整合流程。本系列文章使用 Gulp + Teamcity配合製作持續整合流程,中間也會詳細描述遭遇的問題與解決的方法,因為第一次嘗試,有觀念錯誤或者建議請不吝提出。。

...繼續閱讀 »