好程式碼是管出來的——使用Jenkins搭建CI伺服器
Jenkins是一個開源的跨平臺的CI工具,它可以部署在Windows、Linux等平臺上,並且Jenkins提供了非常豐富的外掛來幫助完成編譯、測試、部署等工作。 本文將介紹在Windows平臺上使用Jenkins完成.Net Core應用的持續整合環境搭建,其主要內容有:
Jenkins下載與安裝
本例使用Jenkins2.136版本進行演示,Jenkins下載地址:https://jenkins.io/download/ 1. 下載Jenkins的Windows安裝器:
2. 通過安裝嚮導完成Jenkins安裝:
Jenkins的預設埠是8080,當安裝完成後可以通過該埠訪問Jenkins:
3. 根據Jenkins的配置嚮導完成相應配置,並進入Jenkins: 選擇常用外掛,這些外掛包含了Git、SVN等常用外掛:
建立使用者:
進入Jenkins:
建立一個.Net Core編譯任務
1. 建立一個新任務:
填寫任務名稱選擇自由風格專案:
2. 修改任務配置:
程式碼庫:
3. 新增構建步驟,此處執行dotnet的編譯命令:
4. 執行任務,結果輸出如下:
實現自動測試
1. 新增測試執行步驟:
2. 收集程式碼覆蓋率: 之前介紹了使用OpenCover來分析.net core的單元測試程式碼覆蓋率,然後再通過ReportGenerator來生成Html格式的報告,所以首先需要新增程式碼覆蓋率分析以及報告生成的構建步驟:
OpenCover.Console.exe -target:"dotnet.exe" -targetargs:"test XUnitTestProject/XUnitTestProject.csproj" -output:coverage.xml -filter:"+[*]* -[*Moq]* -[xunit*]*" -oldstyle ReportGenerator.exe "-reports:coverage.xml" "-targetdir:report" 注:在持續整合工具中使用OpenCover可能會無法生成程式碼覆蓋資訊,所以需要對OpenCover.Profiler.dll檔案進行註冊,註冊程式碼如下:
OpenCover.Profiler.dll檔案位於OpenCover的安裝目錄下,更多詳情查考OpenCover安裝目錄下的Usage.rtf文件。
如果要將生成的Html在Jenkins上顯示,那麼必須新增一個HTML Publisher的外掛:
然後在構建後操作中新增HTML釋出操作:
需要填寫HTML的目錄和報告起始頁面。 完成後儲存配置,並執行構建:
然後在工程面板中即可檢視程式碼覆蓋報告:
報告:
實現自動部署
當完成編譯工作後,需要把編譯的結果釋出出來,對於一個Windows的控制檯應用程式來說,實際上把編輯的執行程式以及相關程式集釋出出來即可,而這個程式檔案實際上是在專案的bin目錄下。在Jenkins中可以通過Artifact Deployer Plug-in這個外掛來完成檔案釋出功能:
外掛安裝完成後,在專案的構建後操作中新增部署操作,將生成的檔案複製到D:\test目錄下:
執行構建後將自動把構建結果釋出至D:\test目錄下。
小結
本文簡單的介紹瞭如何使用Jenkins及相關外掛完成.Net Core程式的自動編譯、測試和釋出功能。無論是前面文章提到的使用各種託管工具還是自己搭建Jenkins其核心步驟都是通過相應工具以執行命令的方式完成的(編譯命令、測試命令、程式碼覆蓋率命令、報表生成命令等)。
雖然都是通過相同的工具以及相同的命令,但是不同的CI工具使用上還是存在一些區別,並且還存在大量的手動配置,有沒有一種方法來簡化並且重用CI/CD流程呢?敬請期待後續內容(*^_^*)