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
- 配置构建触发条件
- 配置构建触发执行动作,将执行生成报告脚本
- 设置构建后操作
- 构建效果