2.2 项目 R 的持续集成过程
项目 R 的敏捷开发采用 Scrum 开发方式,一个版本的开发分为若干个 Sprint,一个 Sprint 一般为期四周。在每个 Sprint 中,需要三至四个集成构建,期间每天需要三个本地构建。根据项目提出的构建需求,项目 R 的构建采用了本地构建与集成构建相结合的持续构建方式,使用 Build Forge 的任务定制功能实现每天三个本地构建。
为了适应敏捷开发以及持续构建的需求,我们对项目的开发模式、代码配置管理和构建流程进行相应的修改。项目R使用的代码配置管理工具是 ClearCase(以下简称 CC)。在进行敏捷开发之前,每个开发人员都有单独的开发流(Stream),每次做集成构建之前,各开发人员需要把代码提交到集成流里,然后创建基线(Baseline),构建工程师从最新的基线里面检出代码,进行集成构建。如果开发人员之间的程序具有相互依赖关系,但又没有及时沟通,往往会导致集成构建的失败。采用敏捷开发以后,为了开发人员更方便获取其它开发人员的代码,建立了一个统一的开发流,所有的开发人员都基于该流进行开发,每天在该流上进行 3 个本地构建以尽快发现各种问题。通过本地构建,确认代码正确以后,才提交代码到集成流,创建基线,进行集成构建。采用敏捷开发方式以后的 CC 策略如图 2 所示。
图 2. ClearCase 简化的开发分支策略示意图
CC 的开发策略修改以后,项目R采用的持续构建过程如图 3 所示。开发人员在开发流上进行开发活动,本地构建根据定制任务的时间周期性地启动。如果本地构建成功,并且需要进行集成构建时,开发人员提交代码并创建基线进行集成构建。
图 3. 项目 R 持续集成过程