持续集成之配置TeamCity

  离开上个东家差不多有一年半的时间了,这一年半更多的还是在学习,或者说更多的是在收拾前辈们写的代码,其中的酸甜苦辣只有经历过的人才知道,想想还是上个东家好,软件研发的流程很规范,各种配套的工具都是现成的,有专门的配置管理团队维护,现在的东家呢,我来公司之前公司的代码是没有纳入版本管理的,老板应该也没用过这东东,大家都是统一将代码放到一样的路径下,隔段时间交流下最新代码,这样的生产效率在人不多情况下还行,但是还是很不方便,在这历史性的关键时刻,本人就充当了配置管理员,建立我们现在使用的版本库(大家都觉得好用)。再往后老板不怎么写代码了,但是经常会让我给他出个最新的包,或者给别人一个最新的包,每次呢我就吭哧吭哧的先备份下我手头的代码然后恢复到库中的最新代码,进行长达半个小时的编译,编译还经常遇到问题,比如同事忘了提交某个新增的文件,整个过程特别痛苦。最后我痛定思痛,决定引入持续集成,不扯皮了,咱们进入正题。

  一.什么是持续集成(Continuous Integration)

  持续集成(CI)是当前流行的敏捷开发的基石。简单来说,持续集成是频繁、持续的在多个团队成员的工作中进行集成,并且给与反馈。一个典型的持续集成周期包括以下几个步骤:

  1. 持续集成服务器不断从版本控制服务器上检查代码状态,看代码是否有更新。
  2. 如果发现代码有最新的提交,那么就从版本控制服务器下载最新的代码。
  3. 等代码完全更新以后,调用自动化编译脚本,进行代码编译。
  4. 运行所有的自动化测试。
  5. 进行代码分析。
  6. 产生可执行的软件,能够提供给测试人员进行测试。

  通过这样一个周期,基本可以能够保证每天服务器上都有一个最新的版本,如果测试团队做的好的话还能及时发现存在的问题,反馈给开发人员。站在现在我用的角度,它能帮助我解决编译问题、实现成果分发自动化。

  二.Teamcity

  可选的持续集成工具比较多,TeamCity是我上个东家用的,所以我首选它,毕竟它也是一个商业软件,稳定性、易用性、功能应该都能满足要求从网上下载相应的安装包。Teamcity的安装挺简单的,只需要简单的点击下一步即可,这里需要注意的是服务端运行时所选择的用户账户,默认选SYSTEM用户,这个选择会影响到以后编译相关的环境

  Teamcity的配置

  这里说的配置主要是CI服务器的设置,也就是配置一个Project,这里面涉及到很多的概念,比如什么是一个Build,什么是一个BuildStep,这些在其英文帮助文档中有很详细的说明,大家可以参照具体的帮助文档进行理解,整个配置过程还是比较简单的,这个过程要利用好它提供的BuildParam,变量尽量用BuildParam进行定义,而不要直接写死,这样在以后维护起来会比较方便。

  遇到的问题

  在编译我们公司的产品时,会莫名奇妙的产生找不到输出路径的情况,后来发现原来我们工程在配置输出目录时使用了VS的自定义宏,这个自定义宏是针对具体的用户的,在用户文档里有,而TeamCity在调用MSBuild进行编译时,没有找到这个用户宏,也就导致了相应的编译错误。

  解决办法

  从服务中找到Teamcity的服务程序,双击服务项,在弹出的对话框中找到登录选项,选择相应的登录账户来启动Teamcity服务,这样在调用MsBuild时就能够找到这个用户宏

posted @ 2013-11-30 21:39  苦行僧2  阅读(586)  评论(0编辑  收藏  举报