嗯,参考我的BLOG的一些关于环境搭建的内容http://hi.baidu.com/89senry/blog/item/00a370d46a749d0ea08bb72d.html
一开始的环境是Apache + SVN + Trac + Hudson in Ubuntu,后面发现有个代码质量平台很不错,Sonar,就在加上去成了Apache + SVN + Trac + Hudson + Sonar in Ubuntu。
CI的环境比较只是个实现持续集成这个目标的工具(至少,我是这么想的),关键看团队中的人。今天一开始是展示目前我所有的工作内容。后面是对开发人员讲解一些开发中融入CI环境时需要做到内容。
+++++++++以下为《CI环境开发人员指南(草稿).doc》内容+++++++++
以下内容基于Martin的Continuous Integration和参与公司的CI环境建设这么些时间以来的思考而想到的一些开发人员需要注意的几点:
每天有工作内容的情况下,在下班前一定要提交代码。目前CI环境中的Daily Build检查更新时间是17:45分。之所以设置Daily Build的时间为17:45分的原因是为了能在6点前看到当天的集成工作结果。如果在这个过程中出现问题,需要立即排除问题,且在问题解决后才能下班(除非半小时内无法解决,那么带着问题下班,明早第一件事就是继续查找问题的出处并将其修复)。
If you get a lot of broken integration builds there are other ways to fix it. Often the main problem is that people aren't doing a private build before they commit. As usual the people-issue is often a more important issue to deal with before introducing more complicated technology.
--Martin Fowler
每次提交代码前需要先确认本地编译与检查都通过,然后与SVN的版本进行比对。确认没有冲突后,更新并进行第二次编译。每次集成编译通过后,都用FindBugs来对代码进行自动检查,防止出现比较低级的错误。以上工作都完成后,再提交代码到SVN。如果在提交前的更新中发现与其他开发人员有冲突,请马上与相应开发人员进行联系与沟通。
公司的CI环境要实现的是真正的Continuous Integration,即开发人员个人每实现一个完整的功能或者模块时,都需要进行一次小规模的集成,这么一直频繁地集成形成一个完整的发行版本。所以开发人员在开发阶段,应当以一个模块或者一个小的功能实现为单位进行持续集成的工作。如果是进行处于维护阶段的开发,则以一个Bug Fixing为单位进行持续集成。同时这个约定的另一个要求就是,并非一定要到下班前才提交当天的工作内容,只要你在一天中的任何时间觉得一部分工作完成了,就应该进行一次集成。如果几个提交工作都集中在下班前去提交,然后等待17:45的Daily Build结果,很可能有时候会出现很多意想不到的冲突和错误。
未来CI环境会在Daily Build之外,设置一个精简版的"Real-Time Build"(自创词汇,咱们以后简称它为RTB)。在一个工作日的过程中,若有开发人员需要进行一次代码的提交,那么这位开发人员在提交更新后,需要立即执行这个集成工作。提交者要对本次提交的代码和集成负责,因此需要确保此次提交的更新成功地被集成后,才能确认此次提交完成了。若在此次集成工作中有问题出现,开发人员需要立即对此错误进行检查和排除。防止错误因时间的推移,慢慢被放大。
XP和Agile中有一个不成文的规定,就是一个小的集成的时间应该控制在10分钟之内,这个可以在Hudson中一个工程的花费时间趋势上看到,凡是低于10分钟的会精确到秒,而超过10分钟的都精确到分钟。所以我们设置完整工作内容的Daily Build和RTB就是Martin说的为解决可能完整集成会花费大量时间的Staged Build方法的一种实现。事实上基于当前我们的工程还没有一个大到需要花费超过20分钟做完整Build的程度,iNovate的CI环境初期的设置我个人认为是RTB进行结束后自动触发完整Build的工作内容。未来根据项目的进展与完整Build花费时间的情况慢慢调整Staged Build的设置。
同时当前R1和R2都有新的内容要进行开发,为了慢慢规范开发人员的代码质量,同时协助逐渐养成良好的编码习惯。希望各位开发人员有时间的时候,看一下Hudson中当前的Findbugs或者Sonar发现的可能的问题,如果这部分代码是个人新写的话,试着从优先级高到低慢慢去审查与改善。
+++++++++++++++++++++以上为WORD文档内容++++++++++++++++++++
展示PPT上传SliderShare共享下(设置了不能下载,只能在线阅读)。
http://www.slideshare.net/senryxie/ci-env-demo-in-inovate
有需要的,可以QQ(63793476)来索取,但是给不给就看缘分了~











留言