2017年4月3日 星期一

使用Jenkins進行ASP.NET自動化部署

這篇將說明如何在Windows作業系統上,使用Jenkins軟體,從版本控管Subversion取得ASP.NET專案程式,在本機上進行自動化部署作業。

一、準備作業

⬛安裝Jenkins軟體,請參考Jenkins 安裝教學
⬛安裝Sbuversion版本控管軟體,請參考Subversion Server for Windows
⬛準備發行之ASP.NET專案,請參考Visual Studio 單鍵發行使用Web.config轉換語法進行差異化部署,並將程式碼簽入Subversion Server控管。


二、安裝MSBuild Plugin與Subversion Plug-in與套件

⬛開啟Jenkis管理介面,執行左側功能選單中[管理Jenkins],然後於內容中點選[管理外掛程式]。

⬛在管理外掛程式的內容中,先點擊[可用的]頁籤,然後勾選[MSBuild Plugin]套件,然後按下[直接安裝]。
因為Jenkins套件數量破千,要尋找某一個套件並不容易,畫面上有個小技巧很好用,若已知套件部分或全部的名稱,在過濾條件輸入關鍵字後,自動顯示符合關鍵字之套件名稱。

⬛在Update Center的的內容中,會顯示正在安裝/升級Plugins的的套件清單,與安裝的進度狀態。

⬛在安裝Jenkins時,預設的安裝套件中,應該已安裝Subversion Plug-in套件,若沒有,請依照上述步驟安裝[Subversion Plug-in]。

三、Jenkins環境設定

這節將對MSBuild與Subversion進行環境設定,以方便日後常態性使用。

⬛MSBuild:開啟Jenkis管理介面,執行左側功能選單中[管理Jenkins],然後於內容中點選[Global Tool Configuration]。

在Global Tool Configuration的內容中,先找到[MSBuild]區段,然後按下[MSBuild 安裝...]鈕,進行新增MSBuild參數設定。

⬛在Name輸入.net framework 4.0,Path to MSBuild輸入C:\Windows\Microsoft.NET\Framework\v4.0.30319,然後按下[Save]鈕儲存設定。
視需要可以新增多個.Net framework版本。

⬛Subversion:開啟Jenkis管理介面,執行左側功能選單中[管理Jenkins],然後於內容中點選[設定系統]。

設定系統的內容中,先找到[Subversion]區段,Subversion 工作區版次選擇[1.7],然後按下[儲存]

那要如何得知Subversion 工作區版次呢?
檢查受SVN控管的專案目錄底下.svn/format或.svn/entries,其版本與工作區版次對應如下。
Version 7 is SVN 1.3
Version 8 is SVN 1.4
Version 9 is SVN 1.5
Version 10 is SVN 1.6
Version 12 is SVN 1.7

四、Jenkins作業

接下來終於要新增作業來進行自動化部署。

開啟Jenkis管理介面,執行左側功能選單中[新增作業]。

輸入作業名稱WebApplication1,並在下方作業類型中選擇[建置 Free-Style 軟體專案],然後按下[OK]。

⬛在[General]頁籤中,不需修改任何內容。

⬛在[原始碼管理]頁籤中,點選[Subversion]作為原始碼的資料來源,Repository URL輸入https://localhost/svn/Demo/WebApplication1,Credentials選項下拉後,選擇可以存取該Repository的帳號與密碼(可以點擊選項右方[Add]鈕進行新增帳號與密碼)。

⬛在[建置觸發程序]頁籤中,可同時存在多種觸發方法,這裡設定遠端觸發建置與定期建置,[遠端觸發建置]需另外開啟一個瀏覽器,並輸入指定之 URL進行觸發建置,[定期建置]輸入00 22 03 * *,代表每個月的03號22時00分就會執行一次。

⬛在[建置環境]頁籤中,勾選[Delete workspace before build starts]選項,代表作業在每次建置之前,都會將工作區內的原始碼清空,以確保每次都會從原始碼管理再下載一份新的程式。勾選[在「畫面輸出」中加入時間戳記],代表作業在建置過程中所產生的記錄檔會有時間戳記。

⬛在[建置]頁籤中,[MSBuild Version]下拉選項點選.net framework 4.0,[MSBuild Build File]輸入WebApplication1.sln,[Command Line Arguments]輸入下面參數字串。

/p:DeployOnBuild=true /p:PublishProfile=Release


⬛按下[儲存],完成新增作業的設定。

⬛回到專案WebApplicaton1的管理介面,可以執行左側功能選單中[馬上建置],來驗證一下設定的內容是否正確。下方建置歷程中#1作業亮起藍燈,代表建置作業成功。

⬛開啟瀏覽器來進行遠端觸發作業,輸入http://localhost:8080/job/WebApplication1/build?token=123456。

⬛點選建置歷程#2,第一行便顯示此次建置是由遠端主機啟動。

⬛因為有預設定期建置的時間,剛好時間一到而觸發建置作業,查看建置歷程#3的記錄。


自動化部署完成!

沒有留言:

張貼留言