使用CruiseControl.Net全面实现持续集成   持续集成想必大家很多人都听说过,甚至都实践过,最近我又一次亲历了一次持续集成,现将我的经验分享给大家.关于持续集成的理论在本文概不涉及,本文的主要目的是实战CruiseControl.Net,用它来全面实现持续集成. 在配置ccnet.config时会用到一些小工具,一并附上:小工具下载 首先,我们来看看用CC.Net能为我们做哪些事情: 自动获取源代码 自动Build 自动执行UnitTest,并生成单元测试报告 自动部署 触发自动化…
持续集成想必大家很多人都听说过,甚至都实践过,最近我又一次亲历了一次持续集成,现将我的经验分享给大家.关于持续集成的理论在本文概不涉及,本文的主要目的是实战CruiseControl.Net,用它来全面实现持续集成. 在配置ccnet.config时会用到一些小工具,一并附上:小工具下载 首先,我们来看看用CC.Net能为我们做哪些事情: 自动获取源代码 自动Build 自动执行UnitTest,并生成单元测试报告 自动部署 触发自动化(回归)测试 邮件提醒 使用CCTray进行监控 应用plu…
1. 环境搭建 1.1. 下载及目录介绍 从官方站点http://cruisecontrol.sourceforge.net/download.html下载一份最新的 CC 压缩包,最新的版本号为2.8.4 下载了cruisecontrol-bin-2.8.4.zip 直接解压到E盘下,文件结构如下图: apache-ant-1.7.0:CC中使用ANT工具 artifacts:CC编译生成发布包 etc:自带容器Jetty对应的配置文件 lib:自带容器Jetty所需要到的Jar包 logs:…
在上一节中我们介绍了环境搭建和配置介绍,并快速启动CC查看集成结果,在本节中我们将详细介绍CC构建操作及监视. 1. 启动CC服务器 通过执行其根目录下的cruisecontrol.bat文件来启动CC.控制台显示“BuildQueue - BuildQueue started”,则说明CC服务器已成功启动. 在启动服务器之前,我们可以打开cruisecontrol.bat文件并修改倒数第三行相应功能的端口数值来指定服务器占用的系统端口,在本例中我们将默认8080端口. 2. Report管理方…
在前面的文章中, 介绍自己当时所在团队的处境(使用.NET开发),一个不到十个人的研发团队在保证正常开发进度同时需要并发支持四.五十个项目问题处理,经常为了程序版 本冲突.日常测试版本.发布版本提供等重复枯燥无味的手工劳动,导致团队成员身心俱疲.经历这样痛苦的一段时间,终于忍受不了,通过命令行实现了包括获 取.编译.发布过程的集成,大大减轻版本编译的时间,此时还能见到团队成员一边编译程序一边聊天轻松的笑脸,这就坚定了自己持续集成的做法,不过可笑是当 时自己对持续集成没有任何的概念,只是当时的状况…
尽管Thoughtworks的首席科学家Martion folwer 为“持续集成 ” 下了定义,但由于自身背景与经历的不同,每个人对其都有不同的理解.从狭义上讲,持续集成可以认为是一种基于某种或者某些变化对软件系统进行的经常性的构 建活动(注:这里的构建活动不仅指编译打包工作,还包含各类自动化测试.部署及发布活动).然而,它忽视了一点,即:任何实践中都应该包含“与人的交互” 这一因素.因此,从广意上讲,持续集成应该是软件开发团队在上述活动的约束下所采用的整个开发流程及活动.它强调开发团队与持续…
add by zhj: 先说一下持续集成的定义,这是ThoughtWorks首席科学家Martin Fowler在<持续集成>第二版中给出的,“持续集成是一种软件开发实践.在持续集成中,团队成员频繁集成他们的工作成果,一般每人每天至少集成一次,也可以多次.每次集成会经过自动构建(包括自动测试)的验证,以尽快发现集成错误.许多团队发现这种方法可以显著减少集成引起的问题,并可以加快团队合作软件开发的速度.” 这里是<持续集成>第二版的一些简单介绍:http://www.infoq.co…
刚换了工作,有需要搭建一套持续集成的平台,做一下总结. 首先是我用到的工具: 上面缺少了Microsoft Fxcop,可以用来做代码校验,不过实际情况暂时还没有用到.主要的需求目前是,使用已发布的稳定版本代码作为新发布版本代码的基础,避免有未完成的代码存在于发布版本中,同时自动化集成发布后,上传该新发布版本代码到tags中.elevate一般情况下是不需要的,不过VisualSVN无法使用命令行登陆,可以使用它来提升执行权限,不过最终我使用了另外一个办法,这个方法需要购买VisualSVN S…
CruiseControl是CIserver的老者,诞生已是多年,在很多方面,CruiseControlserver已经成为持续集成实践的同义词.而如今,CruiseControl已发展成为一个家族式系统,包含CruiseControl.java.CruiseControl.net.CruiseControl.ruby等适应不同语言环境的实现,其强大的插件和扩展能力也是诸多同类系统无法比你的.而在这里,我仅仅介绍该家族的本家CruiseControl.java,即CruiseControl.Cr…
Go是一款先进的持续集成和发布管理系统,由ThoughtWorks开发.(不要和Google的编程语言Go混淆了!)其前身为CruiseControl,是ThoughtWorks在做咨询和交付交付项目时自己开发的一款开源的持续集成工具.后来随着持续集成及持续部署的火热,ThoughtWorks专门成立了一个项目组,基于Cruise开发除了Go这款工具.ThoughtWorks开源持续交付工具Go,Go的官方网站是http://www.go.cd/,其文档是http://www.thoughtwo…