假设您正在开发需要在多个主机(例如 Linux 和 Windows)上编译和运行的代码,考虑到以下情况,您将如何以最有效的方式做到这一点:

  • 您可以完全访问正在编译的每个主机的硬件(在我的例子中,我的桌子上有一台 Linux 主机和一台 Windows 主机)
  • 通过网络驱动器构建太昂贵
  • 不需要提交到中央存储库——假设有一个 CI 引擎,一旦签入任何内容,就会尝试构建

“高效”意味着保持编译-编辑-运行周期尽可能短和简单。

有帮助吗?

解决方案

其他答案中提到的大多数构建服务器都会从版本控制系统检查您的更改。鉴于你的 “不需要向中央存储库提交任何内容” 要求,我建议你尝试 Jetbrains 团队城市 CI 服务器。

它具有 Visual Studio 和 Eclipse 的插件,并允许您请求“私人建造”,将您的更改直接发送到构建服务器。对于每个项目,您可以定义许多具有不同要求的构建配置(操作系统是可能的要求之一)。如果构建成功,插件将提示您提交更改。

免费版本支持 3 个代理,如果需要,您可以购买更多代理。

看起来 Pulse 也有 相同的功能, ,但我没有这方面的第一手经验。

其他提示

我能推荐的最好的东西是一个很棒的跨平台项目,名为“BuildBot”。

每次您将新修订签入源代码控制系统时,BuildBot 都可以自动在您支持的每个平台上进行构建。让它在 OSX、Linux (ubuntu)、Linux (debian)、Linux (Redhat)、Vista、Windows XP 等上构建,并在构建失败时发送电子邮件或您喜欢的任何内容。

作为构建过程的一部分,如果测试通过,您可以发布二进制文件。对于“每晚”或“前沿”构建很有用。

这是一些网址:

我们发现 哈德逊 是一个很棒的 CI 服务器,可以根据需要从源代码控制执行构建。由于它是用 Java 编写的,因此可以在您选择的目标平台上运行,并且由于界面是基于 Web 的,因此您可以从任何地方控制它。有插件可以完成您想做的大多数事情,最重要的是它是免费的!

选择一台机器作为您的开发盒。

将另一个设置为定期(每小时/每天/无论何时)从源代码管理自动更新。任何构建/测试失败都应该向您发送某种警告消息。(电子邮件,即时通讯,等等)。您的非开发框仍在本地构建,因为它有自己的树副本。

当然,在进行真正的发布之前,您仍然需要进行人工测试。但这可以让生活在其余时间保持理智。

使用 http://ccache.samba.org 在较大的项目中只有少数文件发生变化的情况下加快编译速度,

当发生重大变化时,利用杠杆 http://en.opensuse.org/Icecream 同时进行共享分布式编译。

这可能会显着加快你的编译-编辑-运行周期。

由于您正在使用 CI,我假设您已经正确设置了构建过程。我们正在做的是使用 Windows 机器作为开发机器,CI 在 Solaris 上运行。这确保了代码在多个平台上都能很好地编译。代码是用 Java 编写的,我们不使用任何本机库,因此可以保证代码能够正常工作。我们在工作中使用 Bamboo - 它很棒,但不是免费的:-)

对于我的私人项目,我一直在使用 Continuum,但 Husdon 看起来很整洁(我会尝试一下) - 谢谢 Peter。

为此类任务构建简单的设置非常简单。
我会建议 西格文 可在Windows平台上使用。这样您就可以为 Linux 和 Windows 平台编写完全可移植的软件/脚本。从您的帖子中不清楚您处于项目的哪个阶段,但假设您才开始,我建议使用 制作 构建您的软件。您可以使用 cron 来安排签出/构建周期的频率。如果构建日志损坏,您甚至可以发送包含构建日志的电子邮件。
有许多现成的商业和开源每日构建测试,您可以通过谷歌搜索,或者可能有人会在此处添加建议。
我们正在使用自制工具来完成该任务,因此我无法建议任何现成的工具。

好吧,我错过了一点,你不想使用源代码控制系统(这很奇怪,但你是老板:))在这种情况下只需用 rsync 替换签出,其他一切都保持相似。

一种选择是 级联, ,它允许您通过在服务器上“检查点”来在提交之前(而不是之后)在所有平台上测试您的更改。

一个词: 巡航 (不是巡航控制)非常好。

您可以免费获得两名代理,每个平台可以获得一名一代理。在 Mac 和 PC 上安装实际上需要几分钟的时间,据我所知,在 Linux 上设置也不算太糟糕。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top