在我的职业生涯中,我曾在一个软件团队工作过几次,该团队确定
a)我们需要一个构建/测试系统
b)我们应该编写自己的
c)我们可以让开发人员花一周时间完成它,他们应该不必再碰它
每次,这都会导致一个系统似乎只对编写它的人有效,并且需要他们不断关注。我曾多次花时间寻找可以满足我们需求的工具,但空手而归。一般来说,像这种服务器这样的工具市场非常狭窄。我又需要这样的东西了。那里有什么东西,还是我们再写一次?
以下是我的优先级要求(最后几个很好):
能够处理多项目构建。我们有几个组件,它们既提供其他组件使用的东西,也使用其他组件的东西。开发人员应该能够签出 1 个组件并进行更改,而无需构建世界。项目外部的依赖项应该自动引入。因此,某种能够将构建的对象推送和拉取到服务器的方法对此至关重要。另一个方面是能够将所有依赖项下拉到本地目录以便在路上进行开发。
不要担心事情是如何构建的。这可能听起来很奇怪,但我不希望构建系统担心编译我的代码。已经有很好的工具可以为每种语言执行此操作——Ant、CMake 等。我只想告诉它调用什么来构建东西,以及它应该关心什么输出。这样,项目 A 可以是 Java,项目 B 可以是 C++,你明白了。
有一些方法可以在输出上运行测试
在网页上显示当前的构建/测试结果
通过电子邮件发送结果
与 RCS 集成(我们使用 svn)