作者:齐亮
链接:http://www.zhihu.com/question/24314354/answer/27547787
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

PETER HARTMANN的一片博文:http://www.peter.hartmann.tk/#!Minimal-Continuous-Integration-for-Git-projects-with-Jenkins-and-a-Qt-example/cmzt/557e1b840cf298dc5b98f2a5

关于CI,其实是和的团队人员多少、应用程序目标平台和配置的不同是有很大关系的。

例如,只有一个人开发,只面向一个平台,每次自己写了一个commit之后,跑一下自动或者手工测试,基本就可以知道结果了。

手工测试肯定不如写单元测试,写了很多单元测试之后,一般都会有一个脚本来批处理一下。这其实就是一个CI的原型,CI无非也就是自动获取代码,在目标平台上跑一遍或者几遍,然后报告结果。

简单介绍一下Qt Project的CI配置:(详情见 http://qt-project.org/wiki/CI_Overview )
1. 使用Jenkins(http://jenkins-ci.org/),以前用过Pulse(http://zutubi.com/products/pulse/),都是Java的,这样就可以比较简单的跑在Qt的各个目标平台了。个人或者小团队也许可以试试Travis(https://travis-ci.org/)之类的
2. 配置第三方库好像用得是puppet(http://puppetlabs.com/),另外很多编译器升级之类的,也许还是需要手工操作的
3. 台式机也可以呀,配置Jenkins服务器和节点都很简单的
4. 可以呀,除了各种桌面平台,例如Symbian、CE、iOS和Android什么的,只要能写脚本搞定的,都可以跨呀
5. 看需要和精力了,机器跑单元测试总比自己手工测试要牢靠一些,但肯定不能覆盖百分之百的情况...

看了其他人的回答,好像还有一个问题,通常小团队操作,可能是先commit然后再跑CI,而Qt Project则不同,它使用Gerrit(https://code.google.com/p/gerrit/),每个提交的change只有在通过CI之后才会被commit。这样自己添加的一个feature,通过单元测试保证以后,基本上别人就不能把你这个feature毁掉了...

 
Tony Ho ,嵌入式(Linux/Android) 物联网(BLE)
 
直接使用bitnami的gitlab和gitci安装包好了。
可以参考:用gitlabCI快速搭建一个GitServer与CI
我觉得蛮不错的。
 
CMake已经发布3.0,支持Qt5,如果用CMake的话就有CTest和CPack了,很自然就可以用CDash做CI。
还有很多其它Java的CI工具,我推荐试试Jenkins/Hudson。

Qt Project的持续集成方案的更多相关文章

  1. Jmeter+Ant+Jenkins持续集成方案改进

    关于Jmeter+Ant+Jenkins如何搭建持续集成环境,网上资料一大把,就不多说了,本文主要谈一下期间的问题及扩展该持续集成方案. 其实核心的流程不复杂,Jenkins管理构建项目,Ant配置脚 ...

  2. CI/CD持续集成方案

    一,CI/CD流程和持续交付简介 CI(Continuous Integration)持续集成  CD(Continuous Deployment)持续部署  CD(Continuous delive ...

  3. [分享] 自动化测试与持续集成方案-- UI 检查

    对于自动化测试中,UI 自动化测试估计是最有争议的,让人又爱又恨. UI 自动化做回归测试,可以省下很多人力.如果版本一直不稳定,投入跟产出不成比例的. 时机 一般是要版本稳定,界面改动不大.如果迭代 ...

  4. 手机APP自动化持续集成方案

    自动化测试流程 自动化测试框架

  5. 【iOS】Jenkins Gitlab持续集成打包平台搭建

    Jenkins Gitlab持续集成打包平台搭建 SkySeraph July. 18th 2016 Email:skyseraph00@163.com 更多精彩请直接访问SkySeraph个人站点: ...

  6. 构建基于Jenkins + Github的持续集成环境

    搭建持续集成首先要了解什么是持续集成,带着明确的目标去搭建持续集成环境才能让我们少走很多弯路.持续集成(Continuous integration)简称CI,是一种软件开发的实践,可以让团队在持续集 ...

  7. Jenkins Gitlab持续集成打包平台搭建

    http://www.cnblogs.com/skyseraph/p/5695021.html 1. 相关概念 Jenkins Jenkins,一个用Java编写的开源的持续集成工具,提供了软件开发的 ...

  8. JUnit之持续集成(CI,Continuous Integration)

    序,测试驱动开发告诉我们,要尽早测试,经常测试.如果我们进行一点小改动时,都把所有的单元测试.集成测试和功能测试执行一遍,这就会非常浪费时间.为了避免这一点,在开发期间我们只执行单元测试,那么集成测试 ...

  9. 这些年我们一起搞过的持续集成~Jenkins+Perl and Shell script

    这些年我们一起搞过的持续集成~Jenkins+Perl and Shell script ##转载注明出处:http://www.cnblogs.com/wade-xu/p/4378224.html ...

随机推荐

  1. VCMI Mods list

    http://heroescommunity.com/viewthread.php3?TID=40902 http://heroes3wog.net/ http://heroes3towns.com/ ...

  2. HTTP常见的状态码

    状态码的职责是当客户端向服务器端发送请求时,描述返回请求结果.借助状态码,用户可以知道服务器端是正常处理了请求,还是出现了什么错误.RFC2616定义的状态码,由3位数字和原因短信组成.数字中的第一位 ...

  3. exe可执行程序及堆栈分配(转载)

    可执行程序的内存分布 GNU编译器生成的目标文件默认格式为elf(executive linked file)格式,这是Linux系统所采用的可执行链接文件的通用文件格式.elf格式由若干个段(sec ...

  4. [think in java]知识点学习

    java中 全部数值都有正负号,不存在无符号整数. java中的基本类型存储在堆栈中. 其它对象存储在堆中. java确保数组会被初始化,并且不能在它的范围之外被訪问. 下面代码在c和c++中是合法的 ...

  5. Android——编译odex保护

    编译过android源代码的可能试验过改动编译类型.android的初始化编译配置可參考Android--编译系统初始化设置 一.TARGET_BUILD_VARIANT=user 当选择的编译类型为 ...

  6. iOS开发CoreAnimation解读之二——对CALayer的分析

    iOS开发CoreAnimation解读之二——对CALayer的分析 一.UIView中的CALayer属性 1.Layer专门负责view的视图渲染 2.自定义view默认layer属性的类 二. ...

  7. sqlite3安装

    SQLite命令行程序(CLP)是开始使用SQLite的最好选择,按照如下步骤获取CLP: 1).打开浏览器进入SQLite主页,www.sqlite.org. 2).单击页面顶部的下载链接(Down ...

  8. js实现求平均数功能

    今天在项目中遇到了一个求平均值的需求,大致需求就是,页面上面有四个input框,失去焦点就计算平均值,结果保留两位小数,并输出在页面上.不多说了,直接奉上代码,如有更好思路或者想法,都欢迎大家和我讨论 ...

  9. ASP.NET三层架构的分析

    BLL   是业务逻辑层   Business   Logic   Layer DAL   是数据访问层   Data   Access   Layer ASP.NET的三层架构(DAL,BLL,UI ...

  10. CSU 1808 地铁

    题意: ICPCCamp 有 n 个地铁站,用 1,2,-,n 编号. m 段双向的地铁线路连接 n 个地铁站,其中第 i 段地铁属于 ci 号线,位于站 ai,bi 之间,往返均需要花费 ti 分钟 ...