日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Jenkins 搭建C++持续集成环境

發布時間:2024/3/24 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Jenkins 搭建C++持续集成环境 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介

本文主要介紹如何通過 Jenkins 搭建 C++的持續集成環境。最后達到的效果是每天00:00 - 08:00之間構建、測試和打包一次工程。

開發環境為 VS2015,測試工具為 CppUnit,打包工具為 Inno Setup。

本例的 Jenkins 版本為 Jenkins2.60.1

建立工程

新建空白解決方案,命名為 Calculator。勾選 [新建 GIT 存儲庫]。

建立開發項目

新建控制臺項目,命名為 Calculator。新建Calculator.h,內容如下:

#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,內容如下:

#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; }

建立測試項目

本例使用 CppUnit 作為測試工具,如果你還不了解它,請參見我的另一片博文:CppUnit 入門

新建控制臺項目,命名為 CalculatorTest。
將 CppUnit 頭文件和庫文件所在目錄加入到工程搜索目錄中,并將 CppUnit 庫文件加入到鏈接器的附加依賴項。
添加main.cpp,內容如下:

#include "../Calculator/Calculator.h" #include "cppunit/TestFixture.h" #include "cppunit/extensions/HelperMacros.h" #include "cppunit/TestRunner.h" #include "cppunit/TestResult.h" #include "cppunit/TestResultCollector.h" #include "cppunit/TextOutputter.h" #include "cppunit/XmlOutputter.h" #include "cppunit/BriefTestProgressListener.h" #include <iostream> #include <fstream> #include <Windows.h>#include "cppunit/TextTestRunner.h"class CalculatorTestFixture : public CppUnit::TestFixture {CPPUNIT_TEST_SUITE(CalculatorTestFixture);CPPUNIT_TEST(testAdd);CPPUNIT_TEST(testSub);CPPUNIT_TEST_SUITE_END();public:virtual void setUp() override{m_calculator = new Calculator();}virtual void tearDown() override{delete m_calculator; m_calculator = nullptr;}public:void testAdd(){CPPUNIT_ASSERT(3 == m_calculator->add(1, 2));}void testSub(){CPPUNIT_ASSERT(1 == m_calculator->sub(2, 1));}private:Calculator *m_calculator; };CPPUNIT_TEST_SUITE_REGISTRATION(CalculatorTestFixture);int main() {CppUnit::TestRunner runner;runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest());CppUnit::TestResult result;CppUnit::BriefTestProgressListener progressListener;result.addListener(&progressListener);CppUnit::TestResultCollector resultCollector;result.addListener(&resultCollector);runner.run(result);// 打印到控制臺CppUnit::TextOutputter textOutputter(&resultCollector, std::cout);textOutputter.write();// 打印到 xml 文件,以便 xUnit 插件處理std::ofstream fout("TEST-Calculator.xml");if (fout){CppUnit::XmlOutputter xmlOutputter(&resultCollector, fout);xmlOutputter.write();fout.close();}// 返回 0 表示成功return resultCollector.wasSuccessful() ? 0 : 1; }

建立發布腳本

本例用 Inno Setup 打包,在工程目錄新建 Calculator.iss,內容如下:

[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"

提交代碼

切換到[團隊資源管理器]頁簽,點擊左上角,在彈出菜單中選擇[更改],輸入日志,點擊[全部提交]按鈕。

準備工作

本例要用到 Git、MSBuild 和 xUnit 三個插件,第一步就是安裝它們。

安裝 Git plugin

Git 插件一般在安裝 Jenkins 的時候作為默認插件安裝。如果已經安裝,則跳過這一步。如果沒有安裝,則需要手動安裝。
在 Jenkins 管理頁面中,點擊[插件管理]進入插件管理頁面,切換到[可選插件]頁簽,在右上角搜索框中輸入 Git plugin 找到 Git plugin,點擊[直接安裝]按鈕開始安裝。安裝好之后,就會在[已安裝]頁簽找到 Git plugin,如下圖:



安裝 MSBuild plugin

在 Jenkins 管理頁面中,點擊[插件管理]進入插件管理頁面,切換到[可選插件]頁簽,在右上角搜索框中輸入 MSBuild 找到 MSBuild Plugin,點擊[直接安裝]按鈕開始安裝。如下圖:




安裝好之后,就會在[已安裝]頁簽找到 MSBuild Plugin。

回到 Jenkins 管理頁面中,點擊[Global Tool Configuration],進入全局工具設置頁面。



找到[MSBuild]欄目,點擊[新增MSBuild]按鈕,[Name]隨意填寫,本例為MSBuild 14.0。[Path to MSBuild]填寫MSBuild.exe所在的實際路徑。如下圖。點擊[Save]按鈕保存并退出。



安裝 xUnit plugin

在 Jenkins 管理頁面中,點擊[插件管理]進入插件管理頁面,切換到[可選插件]頁簽,在右上角搜索框中輸入 xUnit 找到 xUnit plugin,點擊[直接安裝]開始安裝,如下圖:




安裝好之后,就會在[已安裝]頁簽找到 xUnit plugin。

創建構建和測試任務

由于構建和測試結合得比較緊密,因此不把它們拆分為兩個任務,而是合并成一個。

在 Jenkins 管理頁面中,點擊[新建]進入新建頁面,[Enter an item name]填寫 Calculator Build and Test,任務類型選擇[構建一個自由風格的軟件項目],如下圖所示。點擊[OK]按鈕進入到設置頁面。




找到[源碼管理]欄目,選擇[Git],[Repository URL]填寫工程所在目錄。如下圖所示。點擊[Apply]按鈕使設置生效。



找到[構建]欄目,點擊[增加構建步驟],選擇[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(詳細的參數信息可以在命令行中執行 MSBuild /?查看)。如下圖所示。點擊[Apply]按鈕使設置生效。



為了運行測試用例,還需要增加一個構建步驟。再次點擊[增加構建步驟],選擇[Execute Windows batch command],如下圖所示:



在[命令]中填寫 Release\CalculatorTest.exe。如下圖所示。點擊[Apply]按鈕使設置生效。



找到[構建后操作]欄目,點擊[增加構建后操作步驟],選擇[Publish xUnit test result report],如下圖所示:



點擊[Add]按鈕,選擇[CppUnit-1.12.1(default)],如下圖所示:



在[Pattern]中填寫 TEST*.xml,如下圖所示:



最后,點擊[保存]按鈕保存設置并退出。
在任務控制面板頁面,點擊[立即構建]進行構建。如下圖所示:



構建完成之后,構建歷史會出現在[Build History]列表中。前面紅色的圓點表示構建失敗,藍色的圓點表示構建成功。



在構建歷史列表中點擊列表項可以查看構建詳情。在構建詳情頁面,可以點擊[Console Output]查看控制臺輸出。點擊[Test Result]可以查看測試結果。


創建發布任務

在 Jenkins 管理頁面中,點擊[新建]進入新建頁面,[Enter an item name]填寫 Calculator Deploy,任務類型選擇[構建一個自由風格的軟件項目],如下圖所示。點擊[OK]按鈕進入到設置頁面。




找到[構建]欄目,點擊[增加構建步驟],選擇[Execute Windows batch command],如下圖所示:



在[命令]里輸入如下命令。 注意直接將命令寫在這里是不好的做法,最好是將命令寫在bat中,在這里執行這個bat。這里為了演示而避繁就簡。(其中iscc是Inno Setup的腳本編譯器,關于它的使用可自行查閱Inno Setup的幫助文檔)



點擊[保存按鈕]保存設置并退出。
在任務控制面板頁面,點擊[立即構建]進行構建。構建成功之后會在 [Jenkins 的workspace 目錄]\Calculator Deploy\Output 下找到安裝文件。

創建 Pipeline

下面創建一個 Pipeline 項目將上面兩個項目串聯起來。

在 Jenkins 管理頁面中,點擊[新建]進入新建頁面,[Enter an item name]填寫 Calculator Pipeline,任務類型選擇[Pipeline],如下圖所示。點擊[OK]按鈕進入到設置頁面。



找到[Build Triggers]欄目,選擇[Build periodically],[日程表]填寫 H H(0-7) * * *(表示每天 00:00 - 08:00 進行一次構建,詳細的日程表表示法可以點擊右側的 ? 來查看)。如下圖所示。點擊[Apply]按鈕使設置生效。




找到[Pipeline]欄目,[Definition]選擇[Pipeline script],在[Script]中編寫如下腳本(Pipeline語法可以點擊[Pipeline Syntax]超鏈接查看):



點擊[保存]按鈕保存并退出。
在任務控制面板頁面,點擊[立即構建]進行構建。構建時可以看到 Stage View會根據任務執行進度實時地變化。構建結束后會顯示完整的 Stage View,如下圖所示:


總結

  • 使用Jenkins可以很方便的搭建C++的持續集成環境。
  • 一個工程的構建可以建立多個任務(構建、測試、發布等),每個任務完成單一工作。
  • 使用Pipeline將多個任務整合成工作流。

總結

以上是生活随笔為你收集整理的Jenkins 搭建C++持续集成环境的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。