zoukankan      html  css  js  c++  java
  • [收藏]持续集成工具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

    赠人玫瑰
    手留余香

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

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

  • 相关阅读:
    0309. Best Time to Buy and Sell Stock with Cooldown (M)
    0621. Task Scheduler (M)
    0106. Construct Binary Tree from Inorder and Postorder Traversal (M)
    0258. Add Digits (E)
    0154. Find Minimum in Rotated Sorted Array II (H)
    0797. All Paths From Source to Target (M)
    0260. Single Number III (M)
    0072. Edit Distance (H)
    0103. Binary Tree Zigzag Level Order Traversal (M)
    0312. Burst Balloons (H)
  • 原文地址:https://www.cnblogs.com/haochuang/p/2487853.html
Copyright © 2011-2022 走看看