• [收藏]持续集成工具CC的一些经验


    CruiseControl(CC)是老牌的开源持续集成工具,支持众多的插件,文档也比较全,普通的持续集成应用使用CC是可以满足要求的,CC已经比较久没有更新了。
    团队在选择CI工具时可以考虑使用新的CI工具:hudson

    比较常见的问题:

    1.CruiseControl可以用来做什么语言的CI?
    CC本身是用java编写的,对于java本身的支持也比较好,当然它可以做其他语言的ci工具,如:cpp, python等,cc基于ant做了很好的整合,本身的核心功能并不多,更多的都是插件完成。如果你想完

    全抛开CC基于ant也可以搭建出一个自动构建服务器,只是没有前台UI。

    2.与配置库的集成,常见的配置库软件(VSS, CVS, SVN, ClearCase)都有插件支持,svn是目前主流的代码配置管理系统
    cc与svn的集成:
    A. 在ci server上安装了svn客户端,在project下svn checkout代码

    B. 配置cc project代码修改检测
    <modificationset quietperiod="30">
    <svn LocalWorkingCopy="projects/${project.name}/src"/>
    </modificationset>
    如果代码未变动,cc不会执行整个构建过程。

    C. 代码更新有两种办法:
    1)通过exec svn up实现代码更新
    2)使用svnant

    3.调用分布式的测试服务器脚本
    cc对分布式的支持很复杂,建议直接使用ant-contrib,实现分布式服务器之间的调用
    调用方:
    <remoteant machine="1.2.3.4" port="17000">
    <runtarget target="auto_test">
    </runtarget>
    </remoteant>
    执行方:
    <antserver port="17000" />
    <target name="auto_test">
    <echo message="auto_test running" />
    </target>

    4. 删除默认的Demo项目connectfour
    *删除connectfour.ser
    *删除projects/connectfour
    *删除config.xml <project name="connectfour">节点
    *删除logs/connectfour

    5. 解决邮件中文乱码
    <htmlemail charset="GB2312"

    6. 邮件内容的定制
    <htmlemail
    css="webapps/cruisecontrol/css/cruisecontrol.css"
    xsldir="webapps/cruisecontrol/xsl"
    logdir="logs/${project.name}"
    主要是修改xsl文件,cc的日志是标准的xml文件,通过xsl转换为html。
    其中修改比较多的是errors.xml,可以过滤掉一些不需要显示的message

    7. 单元测试
    单元测试实际上都是由ant的集成,java语言的支持最好,直接可用junit/junitreport
    python可以用pyunit
    <py-test>
    <fileset dir="${python.src.dir}">
    <include name="**/*_test.py"/>
    </fileset>
    </py-test>

    cpp可以用cxxtest、CppUnit

    转自:http://www.4ucode.com/Study/Topic/1437218

    赠人玫瑰
    手留余香

    我们曾如此渴望命运的波澜,到最后才发现:人生最曼妙的风景,竟是内心的淡定与从容……我们曾如此期盼外界的认可,到最后才知道:世界是自己的,与他人毫无关系!-杨绛先生

    如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的推荐按钮。
    如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的关注我

  • 相关阅读:
    905. Sort Array By Parity
    arts-week9
    521. Longest Uncommon Subsequence I
    arts-week8
    学习linux/unix编程方法的建议,学习Linux的四个步骤(转)
    对Linux内核tty设备的一点理解(转)
    ARM微处理器中支持字节、半字、字三种数据类型,地址的低两位为0是啥意思?
    c语言中 char* 和 unsigned char* 的区别浅析(转)
    命名空间的定义与使用(转)
    每日一句古文(转)
  • 原文地址:https://www.cnblogs.com/haochuang/p/2487853.html
Copyright © 2020-2023  润新知