开始持续集成之旅

| | 评论 (1) | 引用通告 (1)

我以前是一个对于持续集成保持中立态度的人。因为我认为花费巨大的代价维护起来一个持续集成的体系是一个不好评估的事。原因有三:
1.大量的测试用例的书写花费巨大,我自己写过的测试用例最夸张的是源代码的200%(不过我自己早已经习惯了测试用例的书写)
2.一个持续集成的环境本身花费巨大,不同的操作系统、不同的平台、不同的用户,想要初始化一个环境就很难了,要保持一批这样的环境更是可怕
3.一但持续集成出现问题,会严重影响进度,因为大家必竟要多关心一个开发过程中的环境

看上去我的否定态度为多。我也知道它的好处,但是做为一个写了十几年代码的人,我不认为持续集成一定会给我带来什么好处。

自从重新开始代码,越来越发现持续集成的好处,当然也有现代技术进步的工具给我带来的便利,使得大家更容易的进行这个任务,同时把这样的工作成果展示出来。

我自己使用的持续集成环境很奇特,因为它融合了一大堆的东东,但是简单来讲分为三类:配置管理、集成管理、集成和测试客户端。
在这里,配置管理我使用了google code里的subversion,集成管理我使用了trac&bitten,测试客户端直接运行了bitten的客户端。

Bitten 2

当一个开发人员把代码提交到google code上,我的FreeBSD每五分钟会从google code上 sync一次代码,trac马上就会知道。这时它会通一bitten的设置了解到需要在哪些平台、客户端上进行测试:

Bittensetup

这里我设置要在os为Darwin和FreeBSD的平台上进行测试。我也会有众多的机器运行着bitten的客户端,它们从trac中取得任务,这是一段 bitten的 log:

Bittenclient

从这里可以看出,客户端先把自己的平台相关信息告诉服务器,服务器发现svn里有更新,同时也有这种平台的测试和集成没有做,就把相关的任务告诉给客户端,客户端就自己进行集成去了。
bitten和trac很好的把集成过程记录并展示了出来:

Buildview

当然每一次集成和测试的过程在服务器上都细细的记着,包括了代码的checkout:

Checkout

代码的编译和测试日志:

Build&Test

我非常喜欢它的代码测试覆盖度说明,这说明了你写的代码有多少被测试到了:

Codecoverage

看了这些,我自己真的被持续集成环境的完美而兴奋了。所有的好处都跑了出来,只是因为工具、环境成熟了,一种理论被支持了起来。我现在已经成为了坚定的持续集成的支持者:
1.良好的界面和视图了解项目的成熟度
2.第一时间发现代码改变的影响程度
3.时刻保持着一套“可用”的系统
4.鼓励每一个人写出良好的代码

引用通告 (1)

下面所列出的是引用这篇文章: 开始持续集成之旅 的Blog链接.

这篇文章的引用通告URL: http://mt.opensource.org.cn/cgi-bin/mt/mt-tb.cgi/198

» 持续集成 来自 且歌

简介:持续集成(ContinuousIntegration)这个术语源自XP(极限编程)的一个最佳实践,随着XP社区在近几年的壮大,XP的很多实践得到了广泛的推广,持续集成就是其中之一,但... 阅读更多

评论 (1)

TestProj 说:

在配置bitten的时候碰到问题,bitten-salve返回:
[DEBUG ] Sending POST request to 'https://localhost/trac/builds'
[WARNING ] Server returned error 403: Forbidden
[ERROR ] HTTP Error 403: Forbidden
查看trac日志发现:
2008-01-17 22:12:02,405 Trac[main] WARNING: 403 Forbidden (Insufficient permissions to access /TestProj)

配置Trac的时候加了authz_file.发现必须设置这个目录的权限是"* = r",这样才能正常的获得builds信息.
但是我想通过authz_file设置权限应该是很正常的情况:-(
请问你是如何配置的?或者用其他的方法绕过这个问题?

发表评论

关于这篇文章

本页包含由 HD 发表于 November 20, 2007 10:00 AM 的单篇文章.

让你的mac关灯吹蜡 是本Blog内的上一篇文章.

转眼间又过两年 是本Blog内的下一篇文章.

您可以在 主页 上查找最近发表的内容,也可以查看列出在 存档页 上的所有内容.

Powered by Movable Type 4.2-en