持续集成 - 最佳实践

17

最近我一直在思考CI和自动构建,并且想知道是否有为设置和维护持续集成环境的最佳实践。你会把所有与CI相关的文件都与项目源代码一起检入吗?你通常如何组织CI和构建文件?欢迎分享任何技巧!


很多CI的事情都是平台无关的,但你如何构建你的CI和构建文件部分可能会受到平台的影响。你介意分享一下你使用的平台是什么吗? - olle
我生活在一个.NET/Windows环境中。目前我们使用Cruise Control .NET、MSBuild和NAnt进行构建。 - Kristoffer Ahl
5个回答

8
  1. 从一步构建开始。如果没有这个,你就无法进行任何合理的持续集成。
  2. 如果不在源代码控制中,它就不存在。
  3. 如果设置和维护您的持续集成所需的工作量超过了设置开发人员工作站的工作量,那么您可能过于依赖您的IDE或者您的项目结构过于复杂。考虑将其作为重构机会。
  4. 您无需使用任何高级技术来进行持续集成。甚至不需要知道什么是持续集成。我曾在这里写过我的早期经验,当时我在听到持续集成这个术语之前实现了一个天真的持续集成。

3
如果你还没有看过的话,一定要查看Duvall/Matyas/Glover所写的Martin Fowler系列中的持续集成一书。该书深入讲解了你提出的所有问题,并提供了实例。

2

还有Pragmatic Series的"实用项目自动化"

当然,构建所需的所有文件都必须进行检查。否则CI如何获取它们呢?

我使用Java和CI,这意味着需要使用Ant build.xml以及Cruise Control、Team City或Hudson。如果您对项目始终保持一致的目录结构,则build.xml可以是通用的。


是的。您需要在构建服务器上安装几个东西,但目标是将所有与CI相关的文件都放在源代码控制下(并让CI服务器从那里拉取文件)。我们使用TeamCity进行C#开发。如果构建变得复杂,我们使用NAnt(它也可以调用MSBuild)。 - TrueWill

2

流行的Jenkins/Hudson CI工具的创始人Kohsuke Kawaguchi刚刚发布了一份白皮书,您可能会发现有帮助。

7种优化Jenkins的方法

1
如果您的构建脚本变得越来越庞大,您可以将其拆分并包含相关部分。这样可以提高维护性和可读性。
我的另一个建议是,与传统编程不同,制作构建脚本时要使用大量注释。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接