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




  • 配置构建触发条件




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



  • 设置构建后操作






  • 构建效果








jenkins下搭建c++持续集成环境的更多相关文章

  1. 使用Jenkins+Calabash+Cocoapods搭建iOS持续集成环境

    使用jenkins+calabash+cocoapods搭建ios持续集成环境 持续集成 持续集成到底是什么呢?依据敏捷大师Martin Fowler的定义: 持续集成是一种软件开发实践. 在持续集成 ...

  2. Jenkins+MSbuild+SVN实现快速搭建.net持续集成环境(构建、编辑、部署到服务器)

    Jenkins是一个可扩展的持续集成引擎,Jenkins非常易于安装和配置,简单易用,下面开始搭建.net持续集成环境 Jenkins和SVN安装这里就不介绍了 一.准备工作 1.Jenkins中系统 ...

  3. Net 项目构建基于Jenkins + Github + Mono 的持续集成环境

    Net 项目构建基于Jenkins + Github + Mono 的持续集成环境 阅读目录 1 安装 2 配置 3 测试 在Redhat enterprise 6.5 的服务器上,为在gutub 上 ...

  4. Jenkins Jenkins结合GIT Maven持续集成环境配置

    Jenkins结合GIT Maven持续集成环境配置   by:授客 QQ:1033553122 安装Git插件 1 安装Git客户端 1 安装JAVA JDK及MAVEN 2 Jenkins JDK ...

  5. 使用VSTS/TFS搭建iOS持续集成环境

    TFS 自2015版开始支持跨平台的持续集成环境,通过提供开源的build agent为 Windows / linux / macOS 提供了统一的持续集成环境管理能力.这篇文章给大家介绍一下如何使 ...

  6. 在Redhat上为.Net 项目构建基于Jenkins + Github + Mono 的持续集成环境

    在Redhat enterprise 6.5 的服务器上,为在gutub 上的 .net 项目构建一个持续集成环境,用到了Jenkins和mono.因公司的服务器在内网,访问外网时要通过代理,所以在很 ...

  7. Jenkins+Maven+Gitlab+Nexus持续集成环境搭建

      1.软件及服务介绍 Jenkins:jenkins是实现代码自动化流程上线的工具,Jenkins是一个独立的开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个 ...

  8. Jenkins + svn + maven 构建持续集成环境搭建

    Jenkins简介 Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: ...

  9. Jenkins+Maven+Sonar系统持续集成环境部署以及配置

    一.Jenkins介绍以及安装 什么是持续集成?   随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题.尤其是近些年来,敏捷(Ag ...

随机推荐

  1. Linux Shell脚本面试25个经典问答

    1 Shell脚本是什么.它是必需的吗? 答:一个Shell脚本是一个文本文件,包含一个或多个命令.作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件(Sh ...

  2. 关于直播学习笔记-002-Red5 & Sewise Player & Wirecast

    一.工具软件 [1]. 视频采集端 Red5 Demo:http://192.168.31.107:5080/demos/simpleBroadcaster.html Telestream:Wirec ...

  3. shell基础篇(五)条件判断

    写脚本时:有时要判断字符串是否相等,数字测试.这对后面学习的shell语句,循环,条件语句做好基础. 条件判断格式  1. test condition : test命令  2. [ conditio ...

  4. 【RF库Collections库测试】关键字append to list

    Arguments:[ list_ | *values ]Adds `values` to the end of `list`.

  5. 查看进程动态:top

    top命令用于查看进程动态,即进程使用系统资源的情况,常见用法如下: [root@localhost ~]$ top # 动态查看进程使用资源的情况,每三秒刷新一次 [root@localhost ~ ...

  6. Android使用百度定位API时获取的地址信息为null

    option.setAddrType("all"); //加上这个配置后才可以取到详细地址信息

  7. background-clip和background-origin

    background-clip 修剪:背景颜色从哪些区域开始显示,默认从border开始该属性指定了背景在哪些区域可以显示,但与背景开始绘制的位置无关,背景的绘制的位置可以出现在不显示背景的区域,这时 ...

  8. php学习十三:其他关键字

    在php中,其实不止在php中,在其他语言中我们也会常常接触到一些关键字,整理了一下php当中的一下关键字,可能有些不全,希望大家指出来,多多交流,一起进步. 1.final 特性:1.使用final ...

  9. poj_3461 kmp

    题目大意 给定两个字符串S1, S2,求S1中包含多少个S2串.其中S1长度最大为 1000000, S2长度最大为10000. 题目分析 典型的字符串匹配问题,直接匹配显然会超时,考虑使用kmp算法 ...

  10. ajax jquery校验用户是否已经注册

    服务端代码这里就不贴了 html代码比较简单,需要自行引入jquery库 <body> 请输入用户名:<input type="text" id="us ...