1. 在 windows 下安裝 Jenkins 並說明環境設定
2. 透過 MSBuild 搭配 TFS 版控工具, 建立 .Net 自動建置功能
Jenkins 安裝
- 下載 Jenkins for Windows (https://jenkins.io/download/)並進行安裝(選擇適當安裝路徑. ex. D:\Jenkins\).
- 選擇版本(LTS or Weekly): LTS為每過去12周取得穩定的版本, Weekly則為每週發版.
- 本文以LTS作為下載對象.
- 建議安裝在容量充足的磁碟機, 因未來程式碼會下載在安裝目錄底下的workspace資料夾.
|
Week |
0 |
2 |
4 |
6 |
8 |
10 |
12 |
14 |
16 |
18 |
20 |
22 |
24 |
|
Release |
W.3 |
X.1 RC |
X.1 |
X.2 RC |
X.2 |
X.3 RC |
X.3 |
Y.1 RC |
Y.1 |
Y.2 RC |
Y.2 |
Y.3 RC |
Y.3 |
|
Baseline Selection |
X chosen |
|
|
|
|
|
Y chosen |
|
|
|
|
|
Z chosen |
- 安裝完成後預設會開啟瀏覽器(http://localhost:8080), 約莫1分鐘後會進入密碼設定的頁面
- 對於port衝突(例如安裝了TFS, 導致8080 port被占用)導致無法順利啟動的狀況, 可透過以下方式更換port.
- 開啟Jenkins安裝目錄下(D:\Jenkins\)的Jenkins.xml.
- 搜尋httpPort=8080, 將8080更換為想要的port(xxxx).
- 開啟Windows服務, 重新啟動Jenkins服務.
- 開啟瀏覽器, 輸入http://localhost:xxxx即可.
- 根據密碼提示頁的路徑, 找出密碼並貼上, 送出後即完成驗證.
- 對於port衝突(例如安裝了TFS, 導致8080 port被占用)導致無法順利啟動的狀況, 可透過以下方式更換port.
- 安裝套件
- 點選Install Suggested Plugins, 安裝官方建議套件.
- 設定管理者資訊, 完成後點選Save and continue.
- 設定Jenkins網址(建議將localhost更換為ip或是其他電腦名稱)
- 完成安裝
變更admin預設密碼
Admin預設密碼即為上述提到的初始密碼, 變更方式如下:
- 點選使用者, 選擇admin, 點選左側的設定.
- 裡面即有密碼欄位供變更.
- 完成後儲存即可變更admin密碼.
設定SMTP Email
- 管理Jenkins > 設定系統
- 於電子郵件通知進行設定(以Gmail為例)
- 建議使用Gmail(Outlook不支援SSL 465, 設定起來相對麻煩)
- 設定SMTP伺服器: smtp.gmail.com
- 預設使用者信箱後綴字串: @xxx.com(可設定公司內部的domain, 往後即可直接輸入email帳號, 就可發送郵件)
- 勾選使用SMTP驗證, 輸Gmail的使用者帳號, 密碼.
- 勾選使用SSL, SSL連接埠: 465.
- (option)勾選測試寄信, 輸入email測試是否能正確收到信件.
- 儲存.
Jenkins套件安裝 - MSBuild
為使Jenkins能夠建置 .Net C# 的程式碼, 需先設定MSBuild環境.
- 安裝VisualStudio 2017或是Build Tools for Visual Studio 2017 (https://visualstudio.microsoft.com/zh-hant/downloads/)
- 在Jenkins的套件管理(管理Jenkins > 管理外掛程式), 搜尋MSBuild並勾選. 點選下載並於重新啟動後安裝. 點擊後會跳轉至安裝畫面, 勾選當安裝完成且沒有工作正在執行時,重啟Jenkins. (若頁面無跳轉, 可直接F5重新刷新畫面, 會顯示Jenkins重啟中).
- 設定MSBuild路徑(管理Jenkins > Global Tool Configuration)
- 於MSBuild區塊新增MSBuild(可先新增x86, x64的MSBuild Tool)
- Name: 任意名稱.
- Path To MSBuild: MSBuild對應路徑
- 若是安裝 Build Tools for Visual Studio 2017, 請參考以下:
- 於MSBuild區塊新增MSBuild(可先新增x86, x64的MSBuild Tool)
|
Name |
Path |
|
VS 2017(x64) |
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\amd64\MSBuild.exe |
|
VS 2017(x86) |
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe |
- 若是安裝Visual Studio 2017 Community, 請參考以下:
|
Name |
Path |
|
VS 2017(x64) |
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\amd64\MSBuild.exe |
|
VS 2017(x86) |
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe |
- 點擊最下方儲存按鈕以生效
Jenkins套件安裝 – Nuget
Nuget為.Net常用的套件管理工具, 要在Jenkins使用同樣先需進行環境設定.
- 下載Nuget.exe (https://www.nuget.org/downloads), 選擇Windows x86 Commandline推薦版本.
- 放在任一目錄(ex. C:\Nuget\Nuget.exe)
- 設定環境變數的Path以使用Nuget command
- 控制台 > 系統 > 進階系統設定 > 環境變數
- 編輯使用者變數與系統變數, 在Path中加入C:\Nuget\
- 於Jenkins安裝Nuget套件(方法可參照MSBuild的套件安裝方式)
- 於Jenkins設定Nuget
- 管理Jenkins > 設定系統
- 於Nuget區塊設定NuGet command line executable. 例如: C:\Nuget\nuget.exe
- 儲存
Jenkins套件安裝 – TeamFoundationServer
本文使用TFS作為版控管理工具, Jenkins預設不支援TFS, 需額外安裝套件.
- 於Jenkins套件管理工具搜尋Team Foundation Server並安裝(安裝方法同上)
建立新工作
本文建立一個範例工作目標為透過TFS Hook偵測程式碼簽入變更, 並透過Jenkins取得變更通知後建置目標專案
- 建立新工作
- 輸入工作名稱(Item Name)
- 點選建置Free-Style軟體專案
- 點選ok
- 原始碼管理
- 點選Team Foundation Version Control(TFVS)
- Collection URL: 輸入TFS的集合URL
- Project path: 指定到sln所在的目錄資料夾, 開頭為 $
- Credentials: 輸入TFS的帳號, 密碼.
- 點選Team Foundation Version Control(TFVS)
- 建置觸發程序
- 點選Build when a change is pushed to TFS/Team Services. (當TFS簽入變更時觸發建置程序)
- 建置
- 新增建置步驟: 執行Windows批次指令
- 因為現在大多專案都會參考nuget, 所以在透過MSBuild建置前, 先進行nuget的套件還原(有參考到的專案建議都進行nuget restore). 指令如下:
- 新增建置步驟: 執行Windows批次指令
nuget restore "%WORKSPACE%\專案路徑\...\xxx.csproj"
- 新增建置步驟: Build a Visual Studio project or solution using MSBuild
- 透過MSBuild建置指定專案
- MSBuild Version: 根據專案選擇x64/x86建置工具.
- MSBuild Build File: %WORKSPACE%\...\xxx.csproj
- 儲存
- 於TFS上設定TFS Service Hooks, 以啟用程式碼變更偵測服務
- 點擊馬上建置, 即可進行測試, 若有錯誤可透過建置歷程的錯誤訊息逐步排錯.