Jenkins 新手教學

1. 在 windows 下安裝 Jenkins 並說明環境設定

2. 透過 MSBuild 搭配 TFS 版控工具, 建立 .Net 自動建置功能

Jenkins 安裝

  1. 下載 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

 

  1. 安裝完成後預設會開啟瀏覽器(http://localhost:8080), 約莫1分鐘後會進入密碼設定的頁面
    • 對於port衝突(例如安裝了TFS, 導致8080 port被占用)導致無法順利啟動的狀況, 可透過以下方式更換port.
      1. 開啟Jenkins安裝目錄下(D:\Jenkins\)的Jenkins.xml.
      2. 搜尋httpPort=8080, 將8080更換為想要的port(xxxx).
      3. 開啟Windows服務, 重新啟動Jenkins服務.
      4. 開啟瀏覽器, 輸入http://localhost:xxxx即可.
    • 根據密碼提示頁的路徑, 找出密碼並貼上, 送出後即完成驗證.
  2. 安裝套件
    • 點選Install Suggested Plugins, 安裝官方建議套件.
  3. 設定管理者資訊, 完成後點選Save and continue.
  4. 設定Jenkins網址(建議將localhost更換為ip或是其他電腦名稱)
  5. 完成安裝

 

變更admin預設密碼

Admin預設密碼即為上述提到的初始密碼, 變更方式如下:

  1. 點選使用者, 選擇admin, 點選左側的設定.
  2. 裡面即有密碼欄位供變更.
  3. 完成後儲存即可變更admin密碼.

 

設定SMTP Email

  1. 管理Jenkins > 設定系統
  2. 於電子郵件通知進行設定(以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環境.

  1. 安裝VisualStudio 2017或是Build Tools for Visual Studio 2017 (https://visualstudio.microsoft.com/zh-hant/downloads/)
  2. 在Jenkins的套件管理(管理Jenkins > 管理外掛程式), 搜尋MSBuild並勾選. 點選下載並於重新啟動後安裝. 點擊後會跳轉至安裝畫面, 勾選當安裝完成且沒有工作正在執行時,重啟Jenkins. (若頁面無跳轉, 可直接F5重新刷新畫面, 會顯示Jenkins重啟中).
  3. 設定MSBuild路徑(管理Jenkins > Global Tool Configuration)
    • 於MSBuild區塊新增MSBuild(可先新增x86, x64的MSBuild Tool)
      • Name: 任意名稱.
      • Path To MSBuild: MSBuild對應路徑
    • 若是安裝 Build Tools for Visual Studio 2017, 請參考以下:

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

  1. 點擊最下方儲存按鈕以生效

 

Jenkins套件安裝 – Nuget

Nuget為.Net常用的套件管理工具, 要在Jenkins使用同樣先需進行環境設定.

  1. 下載Nuget.exe (https://www.nuget.org/downloads), 選擇Windows x86 Commandline推薦版本.
  2. 放在任一目錄(ex. C:\Nuget\Nuget.exe)
  3. 設定環境變數的Path以使用Nuget command
    • 控制台 > 系統 > 進階系統設定 > 環境變數
    • 編輯使用者變數與系統變數, 在Path中加入C:\Nuget\
  4. 於Jenkins安裝Nuget套件(方法可參照MSBuild的套件安裝方式)
  5. 於Jenkins設定Nuget
    • 管理Jenkins > 設定系統
    • 於Nuget區塊設定NuGet command line executable. 例如: C:\Nuget\nuget.exe
    • 儲存

 

Jenkins套件安裝 – TeamFoundationServer

本文使用TFS作為版控管理工具, Jenkins預設不支援TFS, 需額外安裝套件.

  1. 於Jenkins套件管理工具搜尋Team Foundation Server並安裝(安裝方法同上)

 

建立新工作

本文建立一個範例工作目標為透過TFS Hook偵測程式碼簽入變更, 並透過Jenkins取得變更通知後建置目標專案

  1. 建立新工作
    • 輸入工作名稱(Item Name)
    • 點選建置Free-Style軟體專案
    • 點選ok
  2. 原始碼管理
    • 點選Team Foundation Version Control(TFVS)
      1. Collection URL: 輸入TFS的集合URL
      2. Project path: 指定到sln所在的目錄資料夾, 開頭為 $
      3. Credentials: 輸入TFS的帳號, 密碼.
  3. 建置觸發程序
    • 點選Build when a change is pushed to TFS/Team Services. (當TFS簽入變更時觸發建置程序)
  4. 建置
    • 新增建置步驟: 執行Windows批次指令
      1. 因為現在大多專案都會參考nuget, 所以在透過MSBuild建置前, 先進行nuget的套件還原(有參考到的專案建議都進行nuget restore). 指令如下:

nuget restore "%WORKSPACE%\專案路徑\...\xxx.csproj"

  • 新增建置步驟: Build a Visual Studio project or solution using MSBuild
    1. 透過MSBuild建置指定專案
    2. MSBuild Version: 根據專案選擇x64/x86建置工具.
    3. MSBuild Build File: %WORKSPACE%\...\xxx.csproj
  1. 儲存
  2. 於TFS上設定TFS Service Hooks, 以啟用程式碼變更偵測服務
  3. 點擊馬上建置, 即可進行測試, 若有錯誤可透過建置歷程的錯誤訊息逐步排錯.