是否有跨平台持续集成的工具(c ++ Win32和linux)

时间:2009-05-15 19:41:39

标签: c++ continuous-integration cross-platform

我看了几个关于SO的问题 - 并不确定他们回答了这个问题。

我们正在为Win32和Linux构建C ++应用程序。现在我们有一些脚本(win32的bat文件)按计划运行进行构建。

我们希望为我们的项目提供CI,但我希望只有一个CI服务器来处理这两个平台上的构建。与SVN集成很重要。

是否可以让一个配置/一个CI产品/服务器执行此操作?

有没有人成功完成这项工作?竹子看起来可能会解决我们的需求,但如果我们可以避免成本的话,我讨厌像这样的开支作为一个自助创业公司。

4 个答案:

答案 0 :(得分:11)

您可能想要HudsonJenkins。虽然主要用于基于Java的项目,但您可以调整它们以满足您的需求。 它们可以顺利地与SVN集成,而且您可以使用多步构建功能来调用(现有的)批处理文件,并进一步处理。

答案 1 :(得分:8)

Buildbot绝对是一个值得关注的工具 - http://buildbot.net/trac。中央服务器,它监视所有项目并通知代理新任务,以便您可以在不需要设置交叉编译环境的情况下构建您真正需要的任何环境。

您还可以查看Cruise Control @ http://cruisecontrol.sourceforge.net。虽然看起来它更适合java构建,但你可以用它做很多事情。我有一个设置linux arm& i386二进制文件并将它们打包成deb并从构建结果中维护一个debian存储库 - 在代码上运行unittests和各种东西..

但我真正想说的是,基本上,我使用的所有ci服务器软件主要只是“任务调度程序”,你仍然需要自己构建/配置构建环境 - 在多平台场景中至少 - 配置执行构建的软件并从中生成漂亮报告的更大任务..

答案 2 :(得分:4)

TeamCity可以在不同平台上运行构建代理,例如,Windows上的一个构建代理和Linux上的一个构建代理。可以使用配置来指定每个构建所使用的构建代理。

TeamCity并不是免费的,就像在演讲中一样,但是有一个免费的,如啤酒,版本(专业版)有一些限制(3个构建代理,20个用户,20个构建配置)。

答案 3 :(得分:4)

我们使用Zed Builds and Bugs这对我们来说非常有效。有一个中央服务器,您可以在其中设置构建定义。然后,对于完整构建中的每个“步骤”,您可以定义将执行“步骤”的服务器。我们有跨越的步骤:Win32,Linux64,Linux32,HP,AIX,Solaris,甚至是推动全世界远程执行的步骤。

每个步骤都可以设置为并行或串行运行,因此当HP,AIX,Solaris和Linux都做同样的事情时,它们都可以并行运行,Win32后续工作将等到一切都在继续之前完成。

您还可以设置子构建过程,然后从“master”构建中启动它们,以便您可以创建更复杂的构建线程,这些构建线程将彼此独立运行,但所有线程都通过主构建定义绑定在一起。 / p>

这不是免费的,但它节省了我们(特别是我)的时间已经多次支付了软件的成本。