运行环境为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. Dubbo(二) -- Simple Monitor

    一.简介 dubbo-monitor-simple是dubbo提供的简单监控中心,可以用来显示接口暴露,注册情况,也可以看接口的调用明细,调用时间等. Simple Monitor挂掉不会影响到Con ...

  2. poj_2739 尺取法

    题目大意 给定一个数字N,N可能由1个或多个连续的素数求和得到,比如41 = 2+3+5+7+11+13, 41 = 11+13+17, 41 = 41.求出对于N,所有可能的组合形式. 题目分析 先 ...

  3. MUI 二维码扫描并跳转

    1 首页 index.html <li id="html/barcode.html" onclick="clicked(this.id)"> < ...

  4. 封装JDBC工具类

    JDBC连接数据库基本的步骤是固定的,这样就可以考虑封装一个工具类来简化数据库操作. 封装时用到了Java中的properties配置文件,是以一种键值对的形式存在的,可以把连接数据库要动态的信息保存 ...

  5. IE8及以下的数组处理与其它浏览器的不同

    在解决search-box的bug时,由于IE8-的数组处理与其它浏览器的不同,而导致报错. 示例:arr=[1,3,3,]; 当数组的最后是一个逗号时: IE9+默认 arr=[1,3,3];也就是 ...

  6. Android PackageManager:queryIntentActivities

    Intent intent = new Intent(Intent.ACTION_MAIN, null); intent.setPackage(getPackageName()); intent.ad ...

  7. Android Graphviz 安装

    1. Windows下使用android ADT工具dmtracedump.exe绘图在windows下使用dmtracedump绘图时,出现如下错误: 'dot' 不是内部或外部命令,也不是可运行的 ...

  8. 解决Chrome关联Html文件图标显示为空白

    用记事本保存为ChromeHTML.reg Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\CLSID\{42042206-2D85-1 ...

  9. EUI组件之Button

    一.Button的常规使用 用到的按钮素材,分别为按钮的正常.按下.禁用图片 拖动一个Button到exml,并设置正常.按下.禁用.标签等属性 点击效果 其他: 1. 按钮的标签字体颜色大小怎么改变 ...

  10. 【BZOJ3943】[Usaco2015 Feb]SuperBull 最大生成树

    [BZOJ3943][Usaco2015 Feb]SuperBull Description Bessie and her friends are playing hoofball in the an ...