天天看点

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();//运行所有测试案例

}

测试文件

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

jenkins下搭建c++持续集成环境

配置svn

jenkins下搭建c++持续集成环境

配置构建触发条件

jenkins下搭建c++持续集成环境

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

jenkins下搭建c++持续集成环境

设置构建后操作

jenkins下搭建c++持续集成环境
jenkins下搭建c++持续集成环境

构建效果

jenkins下搭建c++持续集成环境
jenkins下搭建c++持续集成环境
jenkins下搭建c++持续集成环境
jenkins下搭建c++持续集成环境