持续集成工具CruiseControl.net对软件项目过程的改善

30、使用 CruiseControl.NET 实现持续集成 本文详细介绍了如何使用 CruiseControl.NET 实现持续集成。内容涵盖 CruiseControl.NET 的安装、配置、运行模式、插件安装、项目设置以及 CCTray 的使用,同时解析了配置文件的结构和各部分的作用。文章还探讨了持续集成的优势、应用场景及常见问题的解决方案,帮助开发团队提升代码质量和开发效率。 阅读详情

在将CruiseControl.net(以下简称为CCNet)于2011-9-20引入我司的三个项目7**项目,2***项目,3***项目,分别为它们部署了持续集成服务器。经过3个月的实践.发现确实能够将测试及早引入项目过程,对项目进行不间断地持续集成确实对项目产生了良好的作用。

换个角度来看,CCNet也是开发者的好助手。同时,它也为整个项目的良性运作保驾护航。

一般情况下,开发者一旦完成了修改,就会在自己的计算机上启动一次 build。这会将其本地的源代码编译并生成为exe或DLL。只有当所有的 build 完成并没有任何错误时,这个 build 过程才可认为是成功的。

当开发者 build 成功后,他就可以考虑将改动提交到源码库(如VSS或SVN)。但麻烦的情况在于别的开发者可能已经在他之前修改过 源代码库中的代码mainline。这时他需要首先把别人的修改更新到他本地,再重新做 build。如果别人的代码和他的有冲突,就会在编译的过程中引起错误。他有责任改正这些问题,并重复这一过程,直到他获取代码能通过 build 并和代码库的 mainline 的代码同步。

一旦开发者本地的源代码能通过 build,并和 源代码空间的代码 同步,他就可以把他的修改提交到源码库。

然而,提交完代码不表示就完事大吉了。还要做一遍集成 build(但是在引入CCNet之前,开发者此时提交完后就停止了,他们接下来会去做别的工作;此后的问题通常过一段有限的时间后才会被发现),这次在集成计算机上并要基于源码库的 mainline 的代码。只有这次 build 成功了,开发者的修改才算告一段落。因为总有可能他忘了什么东西在自己的机器上而没有更新到源码库。只有他提交的改动被成功集成了,他的工作才算结束。这可以手工运行(引入工具之前都由测试者手工运行这次build),现在由 CCNet自动运行。

如果两个开发者的修改存在冲突,这通常会被第二个人提交代码前本地做 build 时发现。即使这时侥幸过关,接下来的集成 build 也会失败掉。不管怎样,错误都会被很快检测出来。好的团队应该每天都有多个成功的 build。错误的 build 可以出现,但必须尽快得到修复。

这样做的结果是总能得到一个稳定的软件,它可能有一些 bug,但可以正常工作。每个人都基于相同的稳定代码进行开发,而且不会离得太远。Bug被发现得越快,花在改正上的时间就越短。

在7**项目目前的代码规模下(7**在三个项目中代码规模最大),从开发者Checkin之后到CCNet发现问题后经邮件反馈出来的时间为1分47秒(在引入CCNet之前,2***项目遇到build的失败的情况时,平均要花费20分钟来解决掉这个错误,开发者一般要涉及到两到三位,测试者一位,这个小团队将离开原来的工作,在一起一直到这个错误解决)。CCNet的引入大大缩短了build失败被发现的时间。这些代码在不到2分钟之前才被一位开发者Checkin,这位开发者收到CCNet的反馈后,就可以很快能定位到问题所在并将其改掉。同时,这也将测试者从不定时遇到build失败的噩梦中拯救出来(在引入CCNet之前2***项目的测试者平均每天要遇到两次build失败)。这样就增加了整个项目的安全感。


 是的,如果你没有在一个多人项目中的经验,或者之前对持续集成没有接触(你可以参考持续集成实践之一 概念 和 持续集成实践之二 VSS+MsBuild2.0+CC.net  两篇博文),那看以上的叙述就很不太直观。下面我们看图说话,请注意图片上的时间和标注及对图片的解释。


以2***项目为例,引入CCNet工具之前遇到build失败后的情况截图如下:

测试者:



开发者:

(请注意:这位开发者说好了的时候,并没有真正进行过集成测试,有可能是好的,但还是有可能没好,这点很像薛定谔的猫。)


CCNet进行持续集成时的截图如下:


(开发者每一次Checkin之后,ccnet即时的去打开关着薛定谔的猫的盒子的盖子,并给出确定的结果。如上图中的2011-12-19的第19,20,21次的修改都没有将第18次引入的bug解决掉,在第22次我们才再次获得了一个成功的build。这些所有的动作都是CCNet自动触发的。)

 

附:

此文引用了Martin Fowler 的《持续集成》第二版中的部分相关内容,点这里可以查看。


Cesium实战:从DEM数据到3D地形可视化的全流程解析 本文详细解析了从DEM数据到3D地形可视化的全流程,重点介绍了Cesium和Cesiumlab在数字高程模型(DEM)处理与地形数据转换中的应用。通过实战案例和工具对比,帮助开发者高效实现地形可视化,并分享性能优化与高级功能开发经验。 阅读详情

相关推荐

华为设备有关用户名密码的策略配置

命令用来开启对密码进行复杂度检查功能,设备默认已经是开启状态。1、密码长度大于等于12位,含数字大小写字母和特殊符号。2、设置密码更换周期为90天。取值范围8-16,默认长度为8位。登录失败后锁定时间大于15分钟。3、登录失败次数小于5次。4、登录超时30分钟以内。

简单的创作,希望可以帮助到跟我一样的学习者! 7840

持续集成实践之二 VSS+MsBuild2.0+CC.net

根据实践的需要,为实现VSS+MsBuild2.0+CCnet这种组合的搭配,持续集成服务器(CI服务器)首先需要安装MicrosoftVisual SourceSafe ,Freamwork2.0,IIS;三者缺一不可。   装好以上这些之后,就双击ccnet的安装程序,安装即可。在windows2003上面安装过程正常。安装的时候不要去更改它的默认地址,更改了之后,发现启动不了。安装在默认

丹青的专栏 1522

基于 YOLOv26 的食品包装缺陷检测系统:智能视觉质检方案

本文提出了一种基于YOLOv26深度学习的食品包装缺陷智能检测系统。该系统能够自动识别多种常见包装缺陷,包括密封不良、破损、污染、标签错误等8类问题。相比传统人工检测方法,该系统具有高精度、多类别分类、实时推理等优势。文章详细介绍了系统架构,包含数据采集、预处理、YOLOv26检测模型和后处理四个核心模块,并提供了完整的环境配置和数据处理代码实现。该系统为食品包装行业提供了一种高效、准确的智能视觉质检解决方案。

一键难忘的博客 683

持续集成工具ccnet部署

ccnet一直在用,这次因为系统迁移,重新换了一个环境部署,方向过程还是有点艰辛的,记录下来,供后人参考。 拷贝一份老的CruiseControl.NET服务端目录到新的服务器硬盘,或者下载安装CruiseControl.NET-.8.5.0-Setup.exe(可以自行baidu)并安装 修改目录下的ccnet.config,如果有老文件,基本挪过来适配下新项目的盘符路径就行了。没用过的话可...

narlon - C#+GameDEV 389

这种绑定设备的文件拷贝出来了,怎么放到一台新的P100上使用

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1134

手把手教你在ARM64架构下编译和部署Milvus:从环境搭建到Docker镜像制作全攻略

本文详细介绍了如何在ARM64架构下编译和部署Milvus,包括环境搭建、源码下载与编译、Docker镜像制作等关键步骤。通过本文的方法,您可以快速构建适用于ARM64设备的Milvus编译环境,并解决常见的编译错误。同时,还提供了基于Docker Compose的测试方法,帮助用户高效地完成向量数据库的部署与应用。这是一次深入探索开源AI工具的实用指南,为开发者在多种硬件架构上的创新应用提供了强有力的支持。

小盒子的博客 1266

2020年10种最佳持续集成工具

技术正呈指数级增长,并且要参与其中,组织别无选择,只能采用技术。谈论“技术”基本上意味着创建“更快,更方便”和“定性”的解决方案。为了跟上高要求的技术动...

DevOps持续集成的博客 9123

基于 FPGA Vivado 信号发生器设计(附源工程)

今天给大侠带来基于 FPGA Vivado 信号发生器设计,开发板实现使用的是Digilent basys 3,如有想要入手basys3开发板的,可以联系牛总:18511371833。话不多说,上货。 本篇掌握基于 FPGA Vivado 信号发生器设计(附源工程),掌握基于添加文件和IP的Vivado工程设计流程,掌握基于Tcl的Vivado工程设计流程,学习信号发生器的基本组成结构。获取本篇相关源工程代码,可在公众号内回复“信号发生器设计源工程”。 设计原理 信号发生器...

7990

CCNET+ProGet+Windows Batch搭建全自动的内部包打包和推送及管理平台

所要用的工具: 1、CCNET(用于检测SVN有改动提交时自动构建,并运行nuget的自动打包和推送批处理) 2、ProGet(目前见到最好用的nuget内部包管理平台) 3、Windows Batch(windows的批处理,用于nuget的自动打包和推送)(这里是最难解决的地方) 具体的搭建步骤: 一、先搭建CCNET的持续集成环境,可以参照以下这些文章: http://...

angou6476的博客 258

小龙虾OpenClaw卸载全攻略,彻底清理缓存和配置,干净无残留!

不想要的小龙虾OpenClaw怎么彻底卸载?🦞本文教你如何彻底的卸载OpenClaw⚡️,Windows/macOS/Linux通用,干净无残留🧹

XiaoqiangClub的博客 313

对角两对双差速轮AGV的平移、直行、转弯和原地旋转之PID控制

本示例将展示如何使用PID控制算法,控制具有对角线布置的两对双差速轮(左前和右后)的AGV,实现平移、直行、转弯和原地旋转等运动。通过对车辆的运动学和PID控制器的设计,我们可以精确地控制AGV的运动

xiaoc100200的博客 1510

敏捷持续集成工具CruiseControl

持续化集成工具便是服务于敏捷软件开发的一个系列。它主要将原本分散,无序的工作流程,通过工具软件有机的组织起来,并且在组织的过程中,参与开发设计测试的各个部门的人员都能从中获取到自动化方面的优惠。使得团队的工作效率大大提升。     CruiseControl是一个针对持续构建程序(项目持续集成)的框架,它包括一个email通知的插件,Ant和各种各样的CVS工具。CruiseControl提供了一

东子的博客 1155

什么是 Agent 的 Context Window?为什么它是 Agent 工程中最核心的约束之一?

什么是 Agent 的 Context Window?为什么它是 Agent 工程中最核心的约束之一?

我哎GIS博客 818

CruiseControl.NET持续集成实践

 前言团队开发需要进行集中的项目文件管理与有效的协调,我们采用源代码管理工具协助我们管理,卓有成效。限定重要文件的访问权限、使用悲观锁杜绝成员同时编辑同一份文件、不允许长时间迁出文件等规则让我们在某一时间段内非常愉快。但是慢慢的,有人抱怨“我获取了源代码怎么编译错误?”。于是增加规定:迁入之前必须获取最新,然后再一次编译,成功后方可迁入VSS。这种办法是很不错,但是工作繁琐了,尤其对大型项

1120

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

持续集成CI工具CruiseControl.NET的配置

最近在学习配置CruiseControl.NET这个工具,用于新项目的持续集成CI实践,以下是我使用的CruiseControl.NET配置,供参考。CruiseControl :简称 CC,持续集成工具,主要提供了基于版本管理工具 ( 如 CVS、VSS、SVN) 感知变化或每天定时的持续集成,并提供持续集成报告、 Email 、 Jabber 等等方式通知相关负责人,其要求是需要进行日构建的项

李大仁博客 805

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

持续集成工具CruiseControl

最近公司要求实现代码的每日自动更新编译发布,然后就来这个活~现在做的差不多了,写一点使用经验。 做这个的时候,查到的资料里代码管理器大多是svn vss这种的,正好单位用的是Clearcase这种个人觉得超难用的代码管理工具,就稍微写点什么,没准以后或者有人用得着。 持续集成工具CruiseControl.NET-1.4.4-Setup 代码管理工具ClearCase 编译环境VS2005

aegis1019的专栏 1006

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

持续集成 .Net手册

  持续集成 .Net手册一、概念Martin Fowler的文章:Continuous Integration  中文翻译:持续集成二、工具传统工具:VisualStudio.Net,VisualSourceSafe,Rational ClearCase自动编译工具:NAnt,NAntContrib回归测试工具:NUnit代码检查工具:FxCop持续集成工具:

切尔斯基 1万+

SVN 配置 之四 CruiseControl.NET & CruiseControl.NET CCTray

CruiseControl.NET 和 CruiseControl.NET CCTray引:http://www.cnblogs.com/flashcloud/archive/2005/12/21/301899.htmlCruiseControl.NET-.net平台的持续集成工具(一.简介)        CruiseControl.NET 是.net平台下,一个开源的自动化

幽灵 逐梦--专栏 1521

CruiseControl.Net持续集成平台搭建总结

原文地址:http://www.cnblogs.com/qiuliang/archive/2011/05/04/2036557.html 最近公司准备启动一个新的项目,预计会投入20-30个开发人员,应该还算一个不小的项目,为了更加科学化的管理,在这个项目里面,打算采用一些XP和敏捷开发的理念,同时也会结合自身的实际情况。为此,我受命着手研究持续集成相关的工具,通过几天的努力,整

丹青的专栏 1112

自动化持续集成编译 配置 CruiseControl.Net SVN

自动化持续集成编译 配置 CruiseControl.Net SVN 还是我的那位宝岛台湾的同事,他是一个很热爱钻研的人,在昨天的公司培训中讲了CruiseControl.Net 的配置,还发给了我一份说明,以前我有知道这个软件,但是没有亲手去配置过,今天有了时间就来亲手配置一下。   环境配置 Windows 7 + VSU 2010 + VisualSVN Ser...

129

使用CruiseControl.Net全面实现持续集成

持续集成想必大家很多人都听说过,甚至都实践过,最近我又一次亲历了一次持续集成,现将我的经验分享给大家。关于持续集成的理论在本文概不涉及,本文的主要目的是实战CruiseControl.Net,用它来全面实现持续集成。 在配置ccnet.config时会用到一些小工具,一并附上:小工具下载 首先,我们来看看用CC.Net能为我们做哪些事情: 自动获取源代码 自动Build 自动执行Unit...

weixin_30652491的博客 277

如何用CruiseControl.Net来进行持续化集成

本文的目的: 本文总结了过去一年中使用CruiseControl.Net来对工作流程进行持续化集成的经验教训,详细地讲述安装,配置,使用CruiseControl.Net的具体步骤,希望通过阅读本文,能理解和掌握使用CruiseControl.Net的基本使用技巧,用工具来改善工作流程和提高工作效率。 什么是持续化集成 首先,我们先搞清楚什么是持续化集成?它对我们的日常

1018

持续集成:CruiseControl.NET + VisualSVN.Server

  刚换了工作,有需要搭建一套持续集成的平台,做一下总结。   首先是我用到的工具:                  上面缺少了Microsoft Fxcop,可以用来做代码校验,不过实际情况暂时还没有用到。主要的需求目前是,使用已发布的稳定版本代码作为新发布版本代码的基础,避免有未完...

chuozhuowl58075的博客 132

(转)使用SVN+CruiseControl+ANT实现持续集成之一

在前面的文章中, 介绍自己当时所在团队的处境(使用.NET开发),一个不到十个人的研发团队在保证正常开发进度同时需要并发支持四、五十个项目问题处理,经常为了程序版 本冲突、日常测试版本、发布版本提供等重复枯燥无味的手工劳动,导致团队成员身心俱疲。经历这样痛苦的一段时间,终于忍受不了,通过命令行实现了包括获 取、编译、发布过程的集成,大大减轻版本编译的时间,此时还能见到团队成员一边编译程序...

aibi2794的博客 151

CruiseControl.Net+SVN+MSBuild 自动编译

注:本文属jillzhang  原创,转载请注明出处 ,欢迎访问http://jillzhang.cnblogs.com/来获取最新更新 本文的目的: 本文总结了过去一年中使用CruiseControl.Net来对工作流程进行持续化集成的经验教训,详细地讲述安装,配置,使用CruiseControl.Net的具体步骤,希望通过阅读本文,能理解和掌握使用CruiseControl.Net的基本使用技巧,用工具来改善工作流程和提高工作效率。 ...

SeedWJ的博客 372
上一篇: 在64位Win2008上面安装P/LSQL工具不能连接Oracle服务器的解决方案
下一篇: 持续集成的概念(摘自张辰雪《持续集成实践 之 CruiseControl》)
danqueen
博客等级 码龄21年 5粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值