支援的專案都是以.NET(C#)開發為主,走進CI持續整合之前,得先幫Jenkins Server準備好可以編譯.NET程式的環境並且完成Jenkins的MSBuild組態工作。在建置過程中,專案也可能需要還原NuGet 上的套件,同時library專案建置完成後,也希望將編譯並且測試好的套件發佈到公司內的Private NuGet Server,好,來完成準備工作。
今天先完成NuGet與MSBuild的準備工作
前置條件:
安裝Visual Studio 2015/2017 或 Microsoft Build Tools 14/15來獲得MSBuild環境。
預計需要花10-20分鐘完成MSBuild及NuGet的安裝及組態。
安裝MSBuild Plugin
管理 Jenkins > 管理外掛程式
選擇可用的Tab,過濾條件輸入msbuild,勾選安裝,最後按下直接安裝按鈕。
如果只安裝MSBuild plugin,但沒有組態msbuild執行檔位置,我們會收到以下錯誤訊息。
'msbuild.exe' 不是內部或外部命令、可執行的程式或批次檔。
等NuGet plugin也安裝後,我們馬上來組態MSBuild Plugin
Nuget plugin安裝
選擇可用的Tab,過濾條件輸入nuget,勾選安裝,最後按下直接安裝按鈕。
兩個plugins都安裝好了~
然後,重新啟動Jenkins
組態MSBuild Plugin
管理 Jenkins > Global Tool Configuration
滑鼠滾到MSBuild區塊,依序新增兩組MSBuild(MSBuild14、MSBuild15)
Name: MSBuild14
Path to MSBuild: C:\Program Files (x86)\MSBuild\14.0\Bin\amd64\
Name: MSBuild15
Path to MSBuild: C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\amd64\
最後按下Global Tool Configuration下方的save按鈕
下載Nuget 執行檔
直接到NuGet網站下載
https://www.nuget.org/downloads
把NuGet.exe執行檔丟在C:\Program Files (x86)\Jenkins目錄。
組態Nuget Plugin
管理 Jenkins > 設定系統
在Nuget區塊設定NuGet.exe的執行目錄
- NuGet command line executable:填上把剛剛下載好的Nuget.exe執行檔路徑: C:\Program Files (x86)\Jenkins\NuGet.exe
- NuGet Publications: 專案完成Build及測試後,我們會發佈新的套件到公司內的NuGet Server,因此要填一下NuGet Server Url及Api key。
最後按下儲存。
設定NuGet config檔案
為了讓Jenkins建置時也能透過NuGet還原套件,我們這邊也要幫新的CI Server設定NuGet套件來源。
打開Visual Studio,工具 > 選項 > 確認可用的套件來源
或是搜尋NuGet.config,手動編輯packageSource
驗證MSBuild and NuGet
如果有設定完成,當我們新增作業(Job)時,在建置區塊就會出現:
在建置後動作也會多出現Publish NuGet packages的選項
這篇完成了MSBuild及Nuget的安裝及組態,下一篇搭配版控先架好Build Server的功能。
碰過客戶要我們把專案拔掉所有NuGet,一般組件參考解除安裝後,重新用檔案方式參考還算容易,只要多注意組態檔案是否可能有一併被刪除的情形要排除,但Web專案的套件就讓人很吃力。
紐約中央公園
參考
Integrate Jenkins with MSBuild and NuGet
yowko 如何使用 Jenkins 2 建置 .NET 專案
Available NuGet Distribution Versions