我应该使用啥工具来创建我的 buildmachine?

Posted

技术标签:

【中文标题】我应该使用啥工具来创建我的 buildmachine?【英文标题】:What tool should I use to create my buildmachine?我应该使用什么工具来创建我的 buildmachine? 【发布时间】:2011-01-22 11:43:17 【问题描述】:

我的空闲时间正在使用C++ 编写的多平台/多架构库。

在每次发布之前,我必须启动几台计算机(一台在 Windows 上,一台在 Linux 上,另一台在 Mac OS 上,...),以确保代码在每个平台上都能正常编译和运行。

所以我决定创建自己的 buildmachine,但我真的不知道有什么工具可以做到这一点。我希望我的 buildmachine 在 Linux 上运行,但任何其他解决方案都可以接受。

理想情况下,我只需单击“全部构建”按钮,它就会为不同的平台/架构编译我的库,从结果生成存档和/或报告潜在的错误。

我的项目“约束”是:

写在C++ 它使用 SConstruct/MinGW 和 Visual Studio 2010 在 Windows 上编译 它使用 SConstruct/g++ 在 Linux 和 Mac OS 上编译 源存储在 Subversion (svn) 中

您知道任何可以帮助我实现目标的工具/工具集吗?

非常感谢。

【问题讨论】:

一个问题,而不是任何形式的见解?如果在 Windows 上使用 VS,为什么在 Mac 上使用 SConstruct?我只是维护并行的 VS 和 XCode 项目——当然是在相同的资源之上。我玩弄了使用 Code::Blocks 的想法,这样我就可以在 Win、Mac 和 Linux 上构建一个项目,但它只是……未完成。 @Chis Becke:我不太了解 XCode,所以无法真正回答。但是我的 SConstruct 文件适用于所有系统,所以我不想添加对另一个构建系统的支持。与 Visual Studio 2010 的兼容性是我的一位在他的公司使用它的朋友提出的特殊要求。如果由我决定,我只会使用 SConstruct,因为它可以满足我的所有需求。 其中之一:en.wikipedia.org/wiki/… ???我研究了一下 buildbot,在 VM 中运行不同的目标。 【参考方案1】:

我会设置 3 个虚拟机(VirtualBox 是免费的),每个平台一个。

在 Linux 上安装 TeamCity(或 Hudson)并在其他 VM 上安装代理,然后只需配置构建系统即可。

在最基本的层面上,您应该有 2 个任务:一个从 Subversion 检查源代码,另一个调用 scons

我对 Hudson 不太熟悉,但 TeamCity 肯定能够生成构建报告、显示进度等。

【讨论】:

+1 我使用 TeamCity 在 Windows 环境中进行构建。我没有在 Linux 上使用它的经验,但支持 Linux 上的构建代理。 TeamCity 是一款不错的工具包 - 强烈推荐。 +1 用于 Virtual Box 和脚本工具集。你真的可以让 OS X 在非 Mac 硬件上的虚拟机中启动吗?不诉诸技术上非法的变通办法? @Chris:老实说,我对 OSX 不是很熟悉。但无论哪种方式,在不了解他的实际设置的情况下(这些机器是独立的吗?他是否三次启动到不同的操作系统?)他只需要在他的 Mac 上安装代理。

以上是关于我应该使用啥工具来创建我的 buildmachine?的主要内容,如果未能解决你的问题,请参考以下文章

我应该使用啥工具来分析窗口 7 上的 Python 代码

我应该啥时候创建 php 文件来在 mysql 数据库中创建表?

我应该使用啥工具或方法来查找 Web 应用程序中的性能点?

我应该用啥程序来创建这个

我应该使用啥 TypeScript 类型来引用我的道具中的匹配对象?

我应该使用啥约束来让图像视图方面填充其父视图的下半部分?