作者:齐亮
链接: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. position: absolute;绝对定位水平居中问题

    position: absolute;绝对定位水平居中问题 用CSS让元素居中显示并不是件很简单的事情—同样的合法CSS居中设置在不同浏览器中的表现行为却各有千秋.让我们先来看一下CSS中常见的几种让 ...

  2. PowerShell_零基础自学课程_5_自定义PowerShell环境及Powershell中的基本概念

    PowerShell_零基础自学课程_5_自定义PowerShell环境及Powershell中的基本概念 据我个人所知,windows下的cmd shell除了能够通过修改系统参数来对其中的环境变量 ...

  3. java设计模式--结构型模式--桥接模式

    桥接模式 概述 将抽象部分与它的实现部分分离,使它们都可以独立地变化. 适用性 1.你不希望在抽象和它的实现部分之间有一个固定的绑定关系. 例如这种情况可能是因为,在程序运行时刻实现部分应可以被选择或 ...

  4. Eclipse-cdt 配合 gdbserver 进行 arm 程序远程调试 下

    上一篇中,介绍了如何编译.运行arm-linux-gdb 和 gdbserver,这一篇中介绍怎样结合Eclipse-cdt进行图形化编译调试 首先当然是使用CDT创建项目并添加源文件. 在左侧 Pr ...

  5. 计算机视觉库 SimpleCV

    SimpleCV首页.文档和下载 - 计算机视觉库 - 开源中国社区     计算机视觉库 SimpleCV 编辑/纠错    分享到     新浪微博腾讯微博    已用    +0    收藏 + ...

  6. [转] Hive 内置函数

    原文见:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF 1.内置运算符1.1关系运算符 运算符 类型 说明 A ...

  7. 修改UITextField placeholder Color

    [YourtextField setValue:[UIColor colorWithRed:97.0/255.0 green:1.0/255.0 blue:17.0/255.0 alpha:1.0] ...

  8. How to check for and disable Java in OS X

    Java used to be deeply embedded in OS X, but in recent versions of the OS it's an optional install. ...

  9. PHP性能优化学习笔记--PHP周边性能优化--来自慕课网Pangee http://www.imooc.com/learn/205

    PHP一般运行于Linux服务器中,周边主要包括:Linux运行环境.文件存储.数据库.缓存.网络 常见PHP场景的开销次序: 读写内存<<读写数据库(使用内存作为缓存.异步处理)< ...

  10. [转]Laravel 4之路由

    Laravel 4之路由 http://dingjiannan.com/2013/laravel-routing/ Laravel 4路由是一种支持RESTful的路由体系, 基于symfony2的R ...