语言不可知构建管理系统

Ada*_*amC 5 language-agnostic build

在我的职业生涯中,我曾多次在一个软件小组中工作,确定

a)我们需要构建/测试系统
b)我们应该编写自己的
c)我们可以让开发人员花一周时间,完成它并且他们不应该我必须再次触摸它

每一次,这都产生了一个系统,它似乎只对编写它的人起作用,并且需要他们不断的关注.我曾多次花时间寻找一种可以满足我们需求的工具,但却空手而归.通常,像这样的工具服务器市场非常狭窄.我再次需要这样的东西.那里有什么东西,还是我们再写一遍?

以下是我的优先顺序要求(最后几个很好):

  1. 能够处理多项目构建.我们有几个组件既提供其他组件使用的东西,也使用其他组件中的东西.开发人员应该能够检查出1个组件并进行更改,而无需构建世界.应自动引入项目外部的依赖关系.因此,能够将构建的对象推送到服务器的某种方式对此至关重要.另一方面是能够将所有依赖关系下拉到本地目录以便在路上进行开发.

  2. 不要担心事情是如何构建的.这可能听起来很奇怪,但我不希望构建系统担心编译我的代码.已经有很好的工具可以为每种语言执行此操作--Ant,CMake等.我只想告诉它要做什么来构建东西,以及它应该关注什么输出.这样,Project A可以是Java,Project B可以是C++,你就可以了.

  3. 有一些方法可以在输出上运行测试

  4. 在网页上显示当前的构建/测试结果

  5. 电邮结果

  6. 与RCS集成(我们使用svn)

Eri*_*ick 1

亚当,

我注意到了蚁丘的反应,作为一名蚁丘人,我不得不说他是对的。Anthill 真正做得很好的事情之一是让您定义项目之间的依赖关系。开源版本专注于 Java,而商业工具尽管名称与语言无关。

它将允许您根据状态(最新成功的构建,或由 QA 批准的最新构建或...)和/或构建号或分支等标准来定义项目(或项目的一部分)之间的依赖关系。这是我们非常自豪的事情。在构建时,构建工件在服务器之间穿梭,保留缓存以提高性能,以及所有这些好东西。

至于其他标准:
2)Anthill(像大多数构建自动化工具一样)将运行您现有的构建脚本,通常无需修改。
3)测试(同样是您现有的技术)可以在构建时运行,或者针对现有构建运行。
4) 结果显示在网络上(这也是构建自动化工具的典型)
5) 电子邮件很容易
6) 我们有数十个 SCM 集成,并在内部使用 SVN,因此集成自然是我们最好的集成之一。

干杯,

埃里克