持续集成构建配置

5 continuous-integration

我被指控在我公司设置CI服务器,我正在寻找一些关于我的项目需要什么构建配置的建议.作为第一步,我将构建设置为:

提交构建:编译代码并运行单元测试
集成构建:编译代码并运行长时间运行的集成测试

我不确定我还需要什么来完成CI图片.例如,你的商店里有什么构建配置?

我知道必须有一个步骤来部署我的成功构建,但是我会将部署作为Integration的一部分吗?

使用TeamCity,MSBsuild和SVN

寻找急需的建议.

Pet*_*ler 6

我见过的最完整的构建按给定顺序执行了以下操作.有两个组,无论失败如何,每个组中的所有目标都会执行,但如果组成员失败,则组将失败.所以我们看到了所有问题.

第一组工作来源:

  • 干净的工作目录
  • 更新到最新的来源,从SVN获取一切
  • 编译来源,rmic等
  • valudate XML资源(至少在Java中有很多,比如部署描述符,样式表等)
  • 为源提供静态代码分析,例如检查空格,编码约定,命名,文件名,或者对源的AST进行更复杂的检查(就像PMD为Java做的那样).
  • 检查其他文件的命名约定,例如,我们检查了所有依赖库的名称以包含版本号.

第二组正在处理生成的代码,只有第一步成功:

  • 进行单元测试
  • 运行快速集成测试
  • 为源提供静态代码分析(Java的大多数工具都是这样做的),例如检查典型的bug模式(比如Findbugs为Java做的)
  • 进行参考检查,例如强制执行体系结构分层,允许从其他类中使用某些类等.
  • 创建完整的部署包

这是提交一次又一次触发的主要构建.它做了很多,但有一些强大的机器使用几个核心,它约为4分钟500k LOC.如果他们愿意,测试人员可以获得最新的快照构建.

长时间运行的集成测试(每个2小时)将每晚运行一次并且仅运行

  • 运行长时间运行测试

另一个版本是纯粹的文档构建,每晚触发一次.它永远不会失败.

  • 创建API文档
  • 使用所有规则进行完整的静态代码分析,并为整体项目质量生成某种指标
  • 从以前构建的所有项目中生成覆盖率报告(遗憾的是,我们没有强制实施覆盖范围)
  • 制作各种花哨的文档,如Maven网站或Sonar报告等.这是管理/ QA的大部分时间.


Jan*_*usz 2

我们在之前的项目中在每个 CI 上运行代码覆盖率记录、发布自动生成的文档和 Checkstyle 报告。

这为我们提供了一些关于每次签到的统计质量的统计数据,用于计划和改善我们的工作习惯。