筆者在《TeamCity : 配置 Build 過程》一文中提到 "TeamCity 內建支援幾乎所有的 build 型別"。在當今這個軟體語言和各種框架飛速發展的時代,要想支援所有的 build 型別顯然是不可能的。比如 TeamCity 就沒有內建對 .NET Core build 型別的支援,所以我們在《TeamCity : 配置第一個工程》一文中使用了 Command Line 型別(command line 型別可以搞定一切!),然後在指令碼里手動呼叫了編譯命令:
dotnet restore
dotnet build
最近,TeamCity 官方通過外掛支援了 .NET Core build(Build, test and deploy .NET Core projects with TeamCity)。既然可以用更加優雅的方式來編譯 .NET Core 程式了就讓我們一起試試吧!
安裝外掛
請從 .NET Core Support 下載外掛。
以管理員許可權進入 Plugins List 頁面,點選上方的 "Upload plugin zip":
然後選擇上傳已下載的外掛:
上傳完成後,檔案會被放在伺服器上的 plugins 目錄下:
接下來需要重啟 TeamCity 服務,然後就能看到新安裝的外掛了:
現在我們再去建立一個 build 步驟,就可以選擇 Runner type 為 ".NET Core (dotnet)" 了:
.NET Core 外掛支援的命令有:build, pack, publish, restore, test。下面我們將詳細介紹如何配置這些不同的命令型別。
Restore
下載專案依賴的包。這個命令有很多的引數,比如您可以指定為哪個專案下載包,也可以指定從哪個源進行下載或者是把下載到的包放在哪個路徑下。如果 UI 中沒有您要的設定,您還可以指定一個命令列引數:
通過命令列引數您就可以無所不能了!
Build
編譯專案,允許您指定 framework,runtime 等資訊。當然也可以指定編譯完成後的輸出目錄,還有萬能的命令列引數!
Test
使用 xUnit framework 能夠輕鬆的在 TeamCity 中整合您的 .NET Core 單元測試。要執行專案中的單元測試,引數的設定和其它命令差不多,下面是單元測試的結果:
Pack
要想把專案釋出到 NuGet,首先要生成 NuGet 包。直接使用 Pack 命令就可以了,它會把專案打包成帶有 nupkg 字尾的包:
Publish
Publish 命令把應用程式及其所有依賴項打包到資料夾,準備進行釋出。它會編譯應用程式,讀取 project.json 檔案中指定的所有依賴項並將生成的檔案集釋出到目錄中。
根據可移植應用的型別,生成的目錄包含以下內容:
1. 可移植應用程式 – 應用程式的中間語言(IL) 程式碼和應用程式的所有託管依賴項。
2. 獨立應用程式 – 除上述內容外,還包括目標平臺的完整執行時。
需要注意的是一定要為 publish 指定 Framework 和 Runtime: