zoukankan      html  css  js  c++  java
  • jenkins下搭建c++持续集成环境

     
    运行环境为centos 5.8
    1.下载tomcat,并解压
    2.下载jenkins,把jenkins.war放到tomcat的webapp目录下
    3.在tomcat的bin目录下执行./startup.sh
    4.下载gcovr
          gcovr在解压后的script目录里
    5.下载cppncss
          cppncss 在bin目录里
    6.下载cppcheck
          解压后,运行make
    7.在jenkins里面下载cppcheck,cppncss, Cobertura(for gcovr),junit(for gtest),github,git插件
           jenkins的系统设置里面,git的设置里面的安装目录写git程序所在位置,比如git在/usr/local,那么输入/usr/local/git, github的设置选择 Let Jenkins auto-manage hook URLs,输入username和password(github的账号)
         在项目的设置中,在 GitHub project设置中设置项目关联的github项目地址https://xxx,在源码管理里面设置git选项,在 Repository URL输入框里输入github项目地址。并勾选 Build when a change is pushed to GitHub
    8.集成gtest
      下载getst,解压
      执行g++ -I${GTEST_DIR}/include -I${GTEST_DIR} -c ${GTEST_DIR}/src/gtest-all.cc
      ar -rv libgtest.a gtest-all.o
       在makefile里面
       -I$(GTESTDIR)/include
      -lgtest
      -L$(GTESTDIR)

    9.主文件
    #include<gtest/gtest.h>
    intmain(int argc, char* argv[])
    {
        testing::InitGoogleTest(&argc, argv);
        return RUN_ALL_TESTS();//运行所有测试案例
    }


    测试文件
    #include<gtest/gtest.h>
    TEST(CAppToolsTest, handleZeroInput)
    {
         ASSERT_EQ(1, 1);
    }


    测试输出
    ./1.out --gtest_output=xml:gtestreport.xml

    10.下载tinyxml
    运行make
    然后运行 ar -rcs libtinyxml.a tinyxmlparser.o tinyxmlerror.o tinyxml.o tinystr.o生成tinyxml库

    11.生成各种报告的脚本buildcc.sh
    BuildPath=./dist
    TinyXML=/home/pc01/Source/c++/ tinyxml
    CPPCheckReport=cppcheckreport.xml
    CPPCheckApp=/home/pc01/Source/c++/cppcheck-1.59/cppcheck
    CPPNCSSReport=cppncssreport.xml
    CPPNCSSApp=/home/pc01/Source/c++/cppncss-1.0.3/bin/cppncss
    GCOVReport=gcovreport.xml
    GCOVRApp=/home/pc01/Source/ gcovr

    SRCDir=./src
    RunPath=$BuildPath

    GTestReport=gtestreport.xml

    echo "clean vod server"
    make clean
    rm *.gcov > /dev/null
    rm $CPPCheckReport > /dev /null
    rm -r -f ./cppncss
    rm $GCOVReport > /dev /null
    rm $GTestReport > /dev /null  

    echo "make vod server"
    make buildtest

    if [ -r "$BuildPath" ]; then
         echo "Make Success"
         echo "Make CPPCheck Report $CPPCheckReport"
          $CPPCheckApp -v --enable=all --xml -I $TinyXML $SRCDir  2> $CPPCheckReport

         echo "Make CPPNCSS Report $CPPNCSSReport"
          mkdir ./cppncss > /dev/null
          $ CPPNCSSApp   -r -v -x -k -f=./ cppncss  /$CPPNCSSReport $SRCDir
         
         echo "Run Test Program, Make Test Report"
         $RunPath/vodservertest.out --gtest_output=xml:$GTestReport > /dev /null
         
         echo "Make GCovr"
         $GCOVRApp -x -r . > $GCOVReport
    else
         echo "Make Fail!"
    fi

    12.网页访问jenkins
    • 新建job

    • 配置svn



    • 配置构建触发条件



    • 配置构建触发执行动作,将执行生成报告脚本


    • 设置构建后操作



    • 构建效果







  • 相关阅读:
    [转] 浅谈 C++ 中的 new/delete 和 new[]/delete[]
    [转] dpkg-deb命令
    [转] 将DOS格式文本文件转换成UNIX格式
    STM32与FreeRTOS实现低功耗
    设置Beyond Compare 为 Git 默认的比较工具
    [转]Linux进程间通信——使用消息队列
    还你一个自由、干净的网络环境
    Linux下的Hello world
    Cortex-M3中C与汇编的交互
    数据结构25:矩阵转置算法(三元组顺序表)
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3228543.html
Copyright © 2011-2022 走看看