English 中文(简体)
语言不限的构建管理系统
原标题:
  • 时间:2008-11-14 20:15:20
  •  标签:

Several times in my career, I have worked in a software group that determined that

a) We needed a build/test system
b) We should write our own
c) We can have a developer spend a week, get it done and they shouldn t have to touch it again

每次,这都导致了一个似乎只为编写它的人工作并需要他们的不断关注的系统。我在几个场合花时间寻找一个我可以拿到的工具来满足我们的需求,但徒劳无功。通常,这样的工具只适用于非常狭窄的市场。我再一次需要这样的东西。有类似的东西吗,或者我们要重新编写吗? 这是我按优先顺序列出的要求(最后几项只是美好的愿望):

  1. 能够处理多项目构建。我们有几个组件,它们为其他组件提供所需的东西,并使用其他组件的功能。开发人员应该能够检出一个组件并进行更改,而无需构建整个项目。项目外的依赖关系应该自动引入。因此,一种能够将构建好的对象推送和拉取到服务器的方法对于此非常关键。另一个方面是能够将所有依赖关系下载到本地目录以进行公路上的开发的能力。

  2. 不要担心事情建造的方式。这可能听起来很奇怪,但我不希望构建系统担心编译我的代码。已经有了为每种语言编写的出色工具- Ant,CMake等。我只想告诉它该调用什么来构建事物以及它应关心什么输出。这样,项目A可以是Java,项目B可以是C ++,你懂的。

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

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

  5. 电邮结果

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

最佳回答

亚当

我注意到蚂蚁山回应了,作为蚂蚁山的一员,我必须说他是正确的。蚂蚁山做得非常好的一点就是让你定义项目之间的依赖关系。开源版本侧重于Java,而商业工具虽然名字是语言无关的。

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

As for the other criteria:
2) Anthill (like most build automation tools) will run your existing build scripts, usually without modification.
3) Tests (again your existing technologies) can be run at build time, or against an existing build.
4) Results are shown on the web (again typical of build automation tools)
5) Email is easy
6) We have over a dozens SCM integrations, and use SVN internally so that integration is naturally one of our best.

干杯。

埃里克

问题回答

Apache 的 Continuum 和 Atlassian 的 Bamboo 将会见面 #2-6。

用一种与语言无关的方式进行#1(编号)有点困难。

Maven和Ivy都适用于Java依赖项。

我使用过Visual Build,我发现它是将所有这些不同的编译器、测试运行器和其他东西绑定成一个灵活的系统的非常有用的方式。想象一下 Windows Scheduler 在大剂量的类固醇上。它基本上是一个大型任务执行引擎,已经准备好了所有主要商业源控制系统、编译器等的任务。它可以创建文件夹、发送电子邮件,还有许多其他的东西,所有这些都有一个相当简单的用户界面。

我已经研究过 AntHill,但从未使用过。有一个开源版本和一个商业版本。我认为它可以做你想要的,但如果你能提供更多的需求,比如是否需要自动化夜间构建,你用的是什么源控制等,那就更有帮助了。

在我现在的公司中,我写了自己的工具。它的工作方式正是你所说的;它不知道如何构建软件。你给它一堆要运行的命令行(存储在数据库中),它会捕获退出值和标准输出和标准错误,如果退出值为非零,则将版本标记为损坏。我们有大约8个项目可以构建和运行单元测试。它们都是通过清除目录并从Subversion中获取最新源代码开始的。

Here is a short list of tools that work with .NET and other languages: Automated Build Tools

我建议,如果您要编写测试系统,考虑使用测试任何协议。 TAP已经使用了20多年,广泛使用,特别是对于CPAN模块。

TAP的一般格式是:

1..N
ok 1 Description # Directive
# Diagnostic
....
ok 47 Description
ok 48 Description
more tests....

例如,测试文件的输出可能如下所示:

1..4
ok 1 - Input file opened
not ok 2 - First line of the input valid
ok 3 - Read the rest of the file
not ok 4 - Summarized correctly # TODO Not written yet

请访问testanything.org了解更多信息。

这些示例是从http://en.wikipedia.org/wiki/Test_Anything_Protocol复制的。





相关问题
热门标签