● 自动检查 :当软件开发团队在周期性的新增或修改后的代码后,CI 服务器能持续地获取新增或修改后签入的源代码,并可以对这些变更的代码进行质量或者编码规范的检查。常用的工具有 PMD、SonarQube、CheckStyle、FindBugs等。
● 自动构建 :CI 系统会依照预先制定的配置计划,或某一特定事件,自动检出代码,并对目标软件进行构建。这里的计划,可以是周期性的时间点,比如10分钟或者1小时构建一次,也可以根据特定事件来触发构建,比如用户主动发出构建命令,或者根据代码的变更来触发构建。构建工具可以选择 Maven 或者 Ant 等。
● 自动测试 :构建检查完成后,可以执行预先制定的一套测试规则,也可以在执行构建的过程中进行测试用例的测试,前提是项目团队采用了测试驱动开发(Test-Driven Development,TDD)。常用的测试工具,有 JUnit、JWebUnit、Selenium 等。
● 自动部署:当自动化检查和测试成功完成,将打包软件、构件部署到一个运行环境或者软件仓库。这样,构件才能更迅速地提供给用户使用。
● 及时提醒:当上面定义的任何一个阶段进行过程中发现出错或者预设事件得到触发,都能够及时通知给相应的项目干系人来进行处理。比如,在构建过程发生了错误,CI 服务器可以邮件通知开发人员来进行修复;自动化部署完成了,CI 服务器通知会测试人员可以进行测试了,等待。除了邮件,提醒的方式可以是短信、桌面通知器,也可以是音响大喇叭。