您的位置:首页 > 编程语言 > C语言/C++

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

zdy0_2004 2017-07-11 21:42 134 查看


http://www.cnblogs.com/dyllove98/archive/2013/07/31/3228543.html

 

运行环境为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

[align=left]BuildPath=./dist[/align]
[align=left]TinyXML=/home/pc01/Source/c++/ tinyxml[/align]
[align=left]CPPCheckReport=cppcheckreport.xml[/align]
[align=left]CPPCheckApp=/home/pc01/Source/c++/cppcheck-1.59/cppcheck[/align]
[align=left]CPPNCSSReport=cppncssreport.xml[/align]
[align=left]CPPNCSSApp=/home/pc01/Source/c++/cppncss-1.0.3/bin/cppncss[/align]
[align=left]GCOVReport=gcovreport.xml[/align]
[align=left]GCOVRApp=/home/pc01/Source/ gcovr[/align]
[align=left]
[/align]
[align=left]SRCDir=./src[/align]
[align=left]RunPath=$BuildPath[/align]
[align=left]
[/align]
[align=left]GTestReport=gtestreport.xml[/align]
[align=left]
[/align]
[align=left]echo "clean vod server"[/align]
[align=left]make clean[/align]
rm *.gcov >
/dev/null
rm $CPPCheckReport
> /dev /null
[align=left]rm -r -f ./cppncss[/align]
[align=left]rm $GCOVReport > /dev /null[/align]
[align=left]rm $GTestReport > /dev /null  [/align]
[align=left]
[/align]
[align=left]echo "make vod server"[/align]
[align=left]make buildtest[/align]
[align=left]
[/align]
[align=left]if [ -r "$BuildPath" ]; then[/align]
[align=left]     echo "Make Success"[/align]
[align=left]     echo "Make CPPCheck Report $CPPCheckReport"[/align]
      $CPPCheckApp -v
--enable=all --xml -I $TinyXML $SRCDir  2> $CPPCheckReport
[align=left]
[/align]
[align=left]     echo "Make CPPNCSS Report $CPPNCSSReport"[/align]
      mkdir ./cppncss >
/dev/null
      $ CPPNCSSApp   -r
-v -x -k -f=./ cppncss  /$CPPNCSSReport
$SRCDir
[align=left]     [/align]
[align=left]     echo "Run Test Program, Make Test Report"[/align]
     $RunPath/vodservertest.out --gtest_output=xml:$GTestReport
> /dev /null
[align=left]     [/align]
[align=left]     echo "Make GCovr"[/align]
[align=left]     $GCOVRApp -x -r . > $GCOVReport[/align]
[align=left]else[/align]
[align=left]     echo "Make Fail!"[/align]
[align=left]fi[/align]
12.网页访问jenkins

新建job



配置svn



配置构建触发条件



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



设置构建后操作







构建效果





标签:  c++