Language agnostic 语言无关构建管理系统
在我的职业生涯中,我曾在一个软件团队工作过好几次,该团队决定 a) 我们需要一个构建/测试系统Language agnostic 语言无关构建管理系统,language-agnostic,build,Language Agnostic,Build,在我的职业生涯中,我曾在一个软件团队工作过好几次,该团队决定 a) 我们需要一个构建/测试系统 b) 我们应该写自己的 c) 我们可以让一个开发者花一周的时间来完成它,他们不应该再碰它 每一次,这导致了一个系统,似乎只有工作的人写了它,并需要他们不断的关注。我已经花了好几次时间寻找一种工具,我可以抓住它来满足我们的需要,但是空手而归。一般来说,像这个服务器这样的工具市场非常狭窄。我又需要这样的东西了。有什么东西吗,还是我们再写一遍?以下是我的需求优先顺序(最后几项很好): 能够处理多项目构建。我
b) 我们应该写自己的
c) 我们可以让一个开发者花一周的时间来完成它,他们不应该再碰它 每一次,这导致了一个系统,似乎只有工作的人写了它,并需要他们不断的关注。我已经花了好几次时间寻找一种工具,我可以抓住它来满足我们的需要,但是空手而归。一般来说,像这个服务器这样的工具市场非常狭窄。我又需要这样的东西了。有什么东西吗,还是我们再写一遍?
以下是我的需求优先顺序(最后几项很好):
两者都适用于Java依赖项。我使用过,我发现这是一种非常有用的方法,可以将所有这些不同的编译器、测试运行程序和其他东西连接到一个灵活的系统中。想想主要steriods上的Windows调度程序。它基本上是一个大型任务执行引擎,包括所有主要商业源代码控制系统、编译器等的现成任务。它可以创建文件夹、发送电子邮件和一系列其他东西,所有这些都有一个相当简单的用户界面。我研究过,但从未使用过AntHill。有一个版本和一个版本。我认为它会做你想做的,但是如果你给出更多的需求,比如它是否需要做自动化的隔夜构建,你用什么来进行源代码控制,等等,它会很有帮助
在我现在的公司里,我写了我自己的。我的工作方式正是你所说的;它不知道如何构建软件。您给它一组要运行的命令行(存储在数据库中),它捕获退出值、stdout和stderr,如果退出值不为零,它会将构建标记为已断开。我们有大约8个项目可以构建和运行单元测试。所有这些工具都是从清除目录并从subversion中重新获取源代码开始的。下面是一个简短的列表,其中列出了可与.NET和其他语言一起使用的工具:
如果你打算编写一个测试系统,你会考虑使用它。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
有关更多信息,请转到
这些例子是从亚当那里抄来的
我注意到了鹿群的反应,作为一个鹿群,我不得不说他是对的。Anthill做得很好的一件事是让您定义项目之间的依赖关系。开源版本以Java为中心,而商业工具则与语言无关,尽管名称不同
它允许您根据状态(最新成功构建,或QA批准的最新构建)和/或构建编号或分支等标准定义项目(或项目部分)之间的依赖关系。这是我们非常自豪的事情。在构建时,构建工件在服务器之间穿梭,缓存用于性能帮助,以及所有这些好东西
至于其他标准:2) Anthill(与大多数构建自动化工具一样)将运行您现有的构建脚本,通常无需修改。
3) 测试(同样是您现有的技术)可以在构建时运行,也可以针对现有构建运行。
4) 结果显示在web上(同样是典型的构建自动化工具)
5) 电子邮件很容易
6) 我们有十多个SCM集成,并在内部使用SVN,因此集成自然是我们最好的集成之一 干杯
eric我认为您必须澄清为什么脚本和/或Ant、msbuild等东西不能满足要求。您似乎还表示希望将二进制文件存储在版本控制中,或者至少存储在生成服务器上。为什么不在ftp站点上公开生成机器的结果?使用标签/修订。