Jenkins 搭建C++持续集成环境
簡(jiǎn)介
本文主要介紹如何通過 Jenkins 搭建 C++的持續(xù)集成環(huán)境。最后達(dá)到的效果是每天00:00 - 08:00之間構(gòu)建、測(cè)試和打包一次工程。
開發(fā)環(huán)境為 VS2015,測(cè)試工具為 CppUnit,打包工具為 Inno Setup。
本例的 Jenkins 版本為 Jenkins2.60.1
建立工程
新建空白解決方案,命名為 Calculator。勾選 [新建 GIT 存儲(chǔ)庫(kù)]。
建立開發(fā)項(xiàng)目
新建控制臺(tái)項(xiàng)目,命名為 Calculator。新建Calculator.h,內(nèi)容如下:
#ifndef CALCULATOR_H #define CALCULATOR_Hclass Calculator { public:int add(int num1, int num2){return num1 + num2;}int sub(int num1, int num2){return num1 - num2;} };#endif新建 main.cpp,內(nèi)容如下:
#include "Calculator.h" #include <iostream>int main() {Calculator calculator;std::cout << "1 + 2 = " << calculator.add(1, 2) << std::endl;std::cout << "2 - 1 = " << calculator.sub(2, 1) << std::endl;return 0; }建立測(cè)試項(xiàng)目
本例使用 CppUnit 作為測(cè)試工具,如果你還不了解它,請(qǐng)參見我的另一片博文:CppUnit 入門
新建控制臺(tái)項(xiàng)目,命名為 CalculatorTest。
將 CppUnit 頭文件和庫(kù)文件所在目錄加入到工程搜索目錄中,并將 CppUnit 庫(kù)文件加入到鏈接器的附加依賴項(xiàng)。
添加main.cpp,內(nèi)容如下:
建立發(fā)布腳本
本例用 Inno Setup 打包,在工程目錄新建 Calculator.iss,內(nèi)容如下:
[Setup] AppName=Calculator AppVersion=1.5 DefaultDirName={pf}\Calculator DefaultGroupName=Calculator UninstallDisplayIcon={app}\Calculator.exe Compression=lzma2 SolidCompression=yes OutputBaseFilename=CalculatorSetup[Files] Source: "Calculator.exe"; DestDir: "{app}"[Icons] Name: "{group}\Calculator"; Filename: "{app}\Calculator.exe"提交代碼
切換到[團(tuán)隊(duì)資源管理器]頁簽,點(diǎn)擊左上角,在彈出菜單中選擇[更改],輸入日志,點(diǎn)擊[全部提交]按鈕。
準(zhǔn)備工作
本例要用到 Git、MSBuild 和 xUnit 三個(gè)插件,第一步就是安裝它們。
安裝 Git plugin
Git 插件一般在安裝 Jenkins 的時(shí)候作為默認(rèn)插件安裝。如果已經(jīng)安裝,則跳過這一步。如果沒有安裝,則需要手動(dòng)安裝。
在 Jenkins 管理頁面中,點(diǎn)擊[插件管理]進(jìn)入插件管理頁面,切換到[可選插件]頁簽,在右上角搜索框中輸入 Git plugin 找到 Git plugin,點(diǎn)擊[直接安裝]按鈕開始安裝。安裝好之后,就會(huì)在[已安裝]頁簽找到 Git plugin,如下圖:
安裝 MSBuild plugin
在 Jenkins 管理頁面中,點(diǎn)擊[插件管理]進(jìn)入插件管理頁面,切換到[可選插件]頁簽,在右上角搜索框中輸入 MSBuild 找到 MSBuild Plugin,點(diǎn)擊[直接安裝]按鈕開始安裝。如下圖:
安裝好之后,就會(huì)在[已安裝]頁簽找到 MSBuild Plugin。
回到 Jenkins 管理頁面中,點(diǎn)擊[Global Tool Configuration],進(jìn)入全局工具設(shè)置頁面。
找到[MSBuild]欄目,點(diǎn)擊[新增MSBuild]按鈕,[Name]隨意填寫,本例為MSBuild 14.0。[Path to MSBuild]填寫MSBuild.exe所在的實(shí)際路徑。如下圖。點(diǎn)擊[Save]按鈕保存并退出。
安裝 xUnit plugin
在 Jenkins 管理頁面中,點(diǎn)擊[插件管理]進(jìn)入插件管理頁面,切換到[可選插件]頁簽,在右上角搜索框中輸入 xUnit 找到 xUnit plugin,點(diǎn)擊[直接安裝]開始安裝,如下圖:
安裝好之后,就會(huì)在[已安裝]頁簽找到 xUnit plugin。
創(chuàng)建構(gòu)建和測(cè)試任務(wù)
由于構(gòu)建和測(cè)試結(jié)合得比較緊密,因此不把它們拆分為兩個(gè)任務(wù),而是合并成一個(gè)。
在 Jenkins 管理頁面中,點(diǎn)擊[新建]進(jìn)入新建頁面,[Enter an item name]填寫 Calculator Build and Test,任務(wù)類型選擇[構(gòu)建一個(gè)自由風(fēng)格的軟件項(xiàng)目],如下圖所示。點(diǎn)擊[OK]按鈕進(jìn)入到設(shè)置頁面。
找到[源碼管理]欄目,選擇[Git],[Repository URL]填寫工程所在目錄。如下圖所示。點(diǎn)擊[Apply]按鈕使設(shè)置生效。
找到[構(gòu)建]欄目,點(diǎn)擊[增加構(gòu)建步驟],選擇[Build a Visual Studio project or solution using MSBuild]。如下圖所示:
[MSBuild Version]選擇[MSBuild 14.0],[MSBuild Build File]填寫Calculator.sln,[Command Line Arguments]填寫 /t:Rebuild /p:Configuration=Release;Platform=x86(詳細(xì)的參數(shù)信息可以在命令行中執(zhí)行 MSBuild /?查看)。如下圖所示。點(diǎn)擊[Apply]按鈕使設(shè)置生效。
為了運(yùn)行測(cè)試用例,還需要增加一個(gè)構(gòu)建步驟。再次點(diǎn)擊[增加構(gòu)建步驟],選擇[Execute Windows batch command],如下圖所示:
在[命令]中填寫 Release\CalculatorTest.exe。如下圖所示。點(diǎn)擊[Apply]按鈕使設(shè)置生效。
找到[構(gòu)建后操作]欄目,點(diǎn)擊[增加構(gòu)建后操作步驟],選擇[Publish xUnit test result report],如下圖所示:
點(diǎn)擊[Add]按鈕,選擇[CppUnit-1.12.1(default)],如下圖所示:
在[Pattern]中填寫 TEST*.xml,如下圖所示:
最后,點(diǎn)擊[保存]按鈕保存設(shè)置并退出。
在任務(wù)控制面板頁面,點(diǎn)擊[立即構(gòu)建]進(jìn)行構(gòu)建。如下圖所示:
構(gòu)建完成之后,構(gòu)建歷史會(huì)出現(xiàn)在[Build History]列表中。前面紅色的圓點(diǎn)表示構(gòu)建失敗,藍(lán)色的圓點(diǎn)表示構(gòu)建成功。
在構(gòu)建歷史列表中點(diǎn)擊列表項(xiàng)可以查看構(gòu)建詳情。在構(gòu)建詳情頁面,可以點(diǎn)擊[Console Output]查看控制臺(tái)輸出。點(diǎn)擊[Test Result]可以查看測(cè)試結(jié)果。
創(chuàng)建發(fā)布任務(wù)
在 Jenkins 管理頁面中,點(diǎn)擊[新建]進(jìn)入新建頁面,[Enter an item name]填寫 Calculator Deploy,任務(wù)類型選擇[構(gòu)建一個(gè)自由風(fēng)格的軟件項(xiàng)目],如下圖所示。點(diǎn)擊[OK]按鈕進(jìn)入到設(shè)置頁面。
找到[構(gòu)建]欄目,點(diǎn)擊[增加構(gòu)建步驟],選擇[Execute Windows batch command],如下圖所示:
在[命令]里輸入如下命令。 注意直接將命令寫在這里是不好的做法,最好是將命令寫在bat中,在這里執(zhí)行這個(gè)bat。這里為了演示而避繁就簡(jiǎn)。(其中iscc是Inno Setup的腳本編譯器,關(guān)于它的使用可自行查閱Inno Setup的幫助文檔)
點(diǎn)擊[保存按鈕]保存設(shè)置并退出。
在任務(wù)控制面板頁面,點(diǎn)擊[立即構(gòu)建]進(jìn)行構(gòu)建。構(gòu)建成功之后會(huì)在 [Jenkins 的workspace 目錄]\Calculator Deploy\Output 下找到安裝文件。
創(chuàng)建 Pipeline
下面創(chuàng)建一個(gè) Pipeline 項(xiàng)目將上面兩個(gè)項(xiàng)目串聯(lián)起來。
在 Jenkins 管理頁面中,點(diǎn)擊[新建]進(jìn)入新建頁面,[Enter an item name]填寫 Calculator Pipeline,任務(wù)類型選擇[Pipeline],如下圖所示。點(diǎn)擊[OK]按鈕進(jìn)入到設(shè)置頁面。
找到[Build Triggers]欄目,選擇[Build periodically],[日程表]填寫 H H(0-7) * * *(表示每天 00:00 - 08:00 進(jìn)行一次構(gòu)建,詳細(xì)的日程表表示法可以點(diǎn)擊右側(cè)的 ? 來查看)。如下圖所示。點(diǎn)擊[Apply]按鈕使設(shè)置生效。
找到[Pipeline]欄目,[Definition]選擇[Pipeline script],在[Script]中編寫如下腳本(Pipeline語法可以點(diǎn)擊[Pipeline Syntax]超鏈接查看):
點(diǎn)擊[保存]按鈕保存并退出。
在任務(wù)控制面板頁面,點(diǎn)擊[立即構(gòu)建]進(jìn)行構(gòu)建。構(gòu)建時(shí)可以看到 Stage View會(huì)根據(jù)任務(wù)執(zhí)行進(jìn)度實(shí)時(shí)地變化。構(gòu)建結(jié)束后會(huì)顯示完整的 Stage View,如下圖所示:
總結(jié)
- 使用Jenkins可以很方便的搭建C++的持續(xù)集成環(huán)境。
- 一個(gè)工程的構(gòu)建可以建立多個(gè)任務(wù)(構(gòu)建、測(cè)試、發(fā)布等),每個(gè)任務(wù)完成單一工作。
- 使用Pipeline將多個(gè)任務(wù)整合成工作流。
總結(jié)
以上是生活随笔為你收集整理的Jenkins 搭建C++持续集成环境的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 60页政务大数据资源 平台项目可研方案
- 下一篇: C++ CAS 操作