持续集成:什么应该自动化? | 使用连续集成 (CI) 重构 2008-10-28
CruiseControl
CruiseControl 是 CI 服务器的老者。它已经用了有五年多了,在许多方面, CruiseControl 服务器 已经成为持续集成实践的同义词。出于完全坦白的目的,我应当提到,我也是 CruiseControl 的多年的老用户。
改进的安装
如果您从最后一次使用 CruiseControl 到现在已经有段时间,而且认为它的安装和配置是个负担,那么您可以看看最新版本。现有,有许多方式安装 CruiseControl。例如,如果使用 Windows,会发现最简单的方式是下载二进制可执行文件,然后运行它。不用担心,还可以下载源代码。
安装之后,CruiseControl 预先配置了一个配置文件,轮询 CVS 存储库并执行 Ant 构建脚本。同样也不需要安装 Web 服务器,因为 CruiseControl 也内嵌了 Jetty。
轮询版本控制系统
比起 Luntbuild 和 Continuum,CruiseControl 提供了对超过十种不同版本控制系统的支持。而且,CruiseControl 对这些工具中的许多定制命令也提供了支持。清单 1 是一个使用 CruiseControl config.xml 脚本轮询 Subversion 存储库的示例:
清单 1. 通过 config.xml 文件轮询存储库
<listeners>
<currentbuildstatuslistener file="logs/${project.name}/status.txt"/>
</listeners>
<modificationset quietperiod="30">
<svn RepositoryLocation="http://www.qualitylabs.org/svn/ambientorb/trunk"
username="bfranklin"
password="G0Fly@Kite"
/>
</modificationset>
执行构建脚本
当在版本控制系统(例如 Subversion)中发现修改时,可以很容易地配置 CruiseControl 去执行委托的构建脚本。例如,清单 2 演示了从 config.xml 调用 Ant 脚本,它指示 CruiseControl 每 60 秒钟查询 Subversion 存储库一次,并执行另一个 Ant 脚本。 委托的构建脚本(没有显示)删除旧文件,从 Subversion 签出最新的源代码,并在代码上运行项目的构建脚本。
清单 2. 执行 Ant 构建脚本
<schedule interval="60">
<ant anthome="apache-ant-1.6.5" buildfile="build-${project.name}.xml"/>
</schedule>
当设置了 CruiseControl 的这个方面并启动服务器之后,可以访问如图 3 所示的 CruiseControl Web 控制板:
要接收最新构建的反馈,可以把 htmlemail 插件添加到清单 3 所示的 config.xml 脚本。可以用 config.xml 文件配置更多反馈机制,例如发送文本消息、电子设备(通过 X10)、甚至即时消息。
清单 3. 用 CruiseControl 发送电子邮件
...
<plugin name="htmlemail"
buildresultsurl="http://${env.COMPUTERNAME}/cruisecontrol/buildresults/${project.name}"
mailhost="${smtp.server}"
username="${mail.username}"
password="${mail.password}"
returnaddress="${buildmaster.email}"
returnname="${buildmaster.name}"
subjectprefix="${project.name} build"
xsldir="webapps/cruisecontrol/xsl"
css="${reportdir}/cruisecontrol.css"/>
...
<htmlemail>
<always address="${buildmaster.email}"/>
<failure address="${buildmaster.email}"/>
</htmlemail>
分享到:
相关推荐
CruiseControl是一款持续集成工具,它能够自动化地构建、测试和部署软件项目,极大地提高了开发效率和产品质量。在本文中,我们将深入探讨如何配置CruiseControl以实现定时运行,确保项目始终保持最新状态。 首先,...
CruiseControl是一款持续集成工具,它能够自动化地执行软件项目的构建、测试和部署流程,以确保代码的质量和项目的稳定性。本篇文章将详细介绍CruiseControl的基本概念、安装过程、配置方法以及一个简单的使用示例。...
### [CruiseControl] Binary安装与启动指南 #### 一、CruiseControl简介 CruiseControl 是一个持续集成工具,用于自动化构建过程并提供实时反馈,帮助开发团队尽早发现问题。它支持多种构建工具如 Ant 和 Maven,...
CruiseControl 是一个开源的持续集成工具,用于自动化软件构建、测试和部署的过程。它通过监控版本控制系统中的变更,自动触发构建任务,及时发现并解决代码集成中的问题,从而提高开发团队的效率和软件质量。本...
**持续集成之CruiseControl.rb** CruiseControl.rb是一款开源的持续集成工具,主要用于自动化构建、测试和部署软件项目。它是由ThoughtWorks公司开发的,是CruiseControl.NET的Ruby版本,因此在Ruby社区中被广泛...
标题与描述概述的知识点主要涉及了使用CruiseControl与Maven2进行持续集成的配置流程。这是一项在软件开发过程中非常关键的技术实践,它能够自动检测代码库中的更新,并自动执行构建、测试以及部署等任务,从而确保...
主题:持续集成及CruiseControl技术交流 在提升软件质量、降低研发风险、拒绝浪费方面,处于敏捷实践领域的持续集成(Continuous Integration,CI)起到重要作用。持续集成能够解决研发工作中的80%任务(日常),...
CruiseControl-2.8.4.exe
### CruiseControl.net 配置详解 #### 一、CruiseControl.net简介 CruiseControl.net是一种流行的持续集成(CI)工具,它可以帮助软件团队自动构建、测试和部署代码,从而提高开发效率和软件质量。本篇文章将围绕...
CruiseControl是一款开源的持续集成工具,用于自动化软件开发过程中的构建、测试和部署任务。这份"CruiseControl使用指南.rar"包含了一系列关于如何有效利用CruiseControl进行持续集成的资源,包括文章、教程和示例...
CruiseControl.NET-1.4.4-Setup.exe
"利用CruiseControl软件进行持续集成" 在软件开发过程中,持续集成是一个非常重要的步骤,它可以帮助开发团队更好地合作和跟踪项目的进度。CruiseControl是一种流行的持续集成工具,能够自动化地构建、测试和部署...
cruisecontrol简介
自适应巡航控制(Adaptive Cruise Control, 简称ACC)是一种高级驾驶辅助系统,它在传统的巡航控制基础上增加了车辆自主调节车速的能力,以保持与前车的安全距离。MATLAB是一款广泛应用于数学计算、数据分析和算法开发...
CruiseControl.NET-CCTray-1.8.4.0-Setup.exe
CruiseControl.NET 是 .NET 平台下的持续集成工具,CruiseControl (Java) 的 .NET 移植版本。CruiseControl是一个针对持续构建程序(项目持续集成)的框架,它包括一个email通知的插件,Ant和各种各样的CVS工具。Cruise...
### Cruisecontrol:持续集成平台与分布式构建实践 #### 一、CruiseControl简介 CruiseControl是一个开源的持续集成平台,旨在帮助企业实现自动化构建过程,提高软件开发效率和质量。项目采用Apache许可证发布,...