如何使用 Jenkins 2 建置 .NET 專案

實際上使用 Jnekins 1 跟 Jenkins 2 在建置 .NET 專案的設定並沒有不同,依照 Jenkins 1 的設定即可,因為已改用 Jenkins 2 ,怕設定畫面不同,造成誤解,所以標題就直接使用 Jenkins 2

文章大綱

  1. 安裝 Plugin
  2. 設定 NuGet
  3. 設定 MSBuild
  4. 新增 project
  5. prject 設定
  6. Build Now

安裝 Plugin

  • 視實際情況來安裝

    1plugin

  • 必要:NuGet,MSBuild

  • 版控: GitHub or Subversion or Visual Studio Team Foundation Server (TFS)

設定 NuGet

  1. Manage Jenkins –> Configure System

    10NuGetsetting

  2. NuGet 區塊

    • 指定 NuGet.exe 絕對位置
    • 可以透過 chocolatey NuGet.CommandLine 安裝 NuGet command line 工具
    • 預設值是 ${WORKSPACE}\.NuGet\NuGet.exe

      11NuGet

設定 MSBuild

  1. Manage Jenkins –> Global Tool Configuration

    7globalmsbuild

  2. MSBuild 區塊

    8msbuild

    • 可以同時指定多個版本的 MSBuild
    • 給定識別用的 name 及 MSBuild.exe 所在資料夾路徑

      9msbuilds

新增 project

  1. 加入新 job

    • New Itemcreate new jobs 都可以

      2create

  2. project 名稱 及類型

    3newporject

    • 2-1. project 名稱
    • 2-2. 選擇 project 類型( Freestyle project)

prject 設定

  • Source Code Management

    4source

    • Source Code Management tab
    • 以 GitHub 為例
    • 指定 Repository
    • 指定 登入資訊
    • 選擇 or 新增

      ![5addcred](https://cloud.githubusercontent.com/assets/3851540/21758723/4c117b94-d679-11e6-8c7b-b9b66cd4a2da.png)
      
    • add credentials

      ![6cred](https://cloud.githubusercontent.com/assets/3851540/21758724/4c2d894c-d679-11e6-8df8-94c5a66170e8.png)
      
    • 選定 Branch

  • Build

    12build

    • 使用 plugin

      1. NuGet 還原

        • Add build step –>Execute Winodws batch command

          13NuGet

        • 指令

          NuGet restore {projectName}.sln
          
        • 如上網需 proxy 時的指令(非必要)

          NuGet config -set http_proxy=http://proxyserver:port
          NuGet config -set http_proxy.user=AD\username
          NuGet config -set http_proxy.password=password
          NuGet restore {projectName}.sln 
          
      2. MSBuild

        • Add build step –> Build a Visual Studio project or solution using MSBuild

          14msbuild

        • 設定

          16buildsetting

          • MSBuild Version

            • 可使用前面設定的 MSBuild 版本

              15msbuildversion

          • MSBuild Build File

            • 方案檔或是專案檔名稱
          • Command Line Arguments

            • 指定 build 的參數
            • build mode,build platform
              • e.g. /p:Configuration=Release /p:Platform="Any CPU"
    • 直接指定路徑

      1. NuGet 還原

        • Add build step –> Execute Winodws batch command

          13NuGet

        • 指令

          "C:\ProgramData\chocolatey\lib\NuGet.CommandLine\tools\NuGet.exe" restore {projectName}.sln
          
        • 如上網需 proxy 時的指令(非必要)

          "C:\ProgramData\chocolatey\lib\NuGet.CommandLine\tools\NuGet.exe" config -set http_proxy=http://proxyserver:port
          "C:\ProgramData\chocolatey\lib\NuGet.CommandLine\tools\NuGet.exe" config -set http_proxy.user=AD\username
          "C:\ProgramData\chocolatey\lib\NuGet.CommandLine\tools\NuGet.exe" config -set http_proxy.password=password
          "C:\ProgramData\chocolatey\lib\NuGet.CommandLine\tools\NuGet.exe" restore {projectName}.sln 
          
      2. MSBuild

        • Add build step –> Execute Winodws batch command

          13NuGet

        • 指令

          "C:\Program Files (x86)\MSBuild\14.0\Bin\amd64\MSBuild.exe" {projectName}.sln  /p:Configuration=Release /p:Platform="Any CPU"
          

Build Now

  1. 執行建置(擇一)

    17buildnow

    22startbuild

  2. 開始建置

    18startbuild

  3. 詳細建置資訊

    19detail

  4. 建置結果

    20success

    21result

參考資料