如何在为多个平台构建时使用hudson

时间:2009-10-02 20:26:43

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

目前我们正在为Win32平台构建一些C ++应用程序。我们将很快移植到Linux,然后可能更多(两者都是32位和64位)。

标准做法是什么,您是否在自己的平台上使用多个哈德森服务器进行构建,或者哈德森服务是否创建虚拟机并进行构建?

我不清楚这样做的最佳实用方法。

理想情况下,我只想要一个带有一堆运行hudson的VM的盒子,然后根据需要启动构建。

有人可以指点我这个资源吗?

4 个答案:

答案 0 :(得分:5)

我们使用Hudson来管理多个操作系统的C / C ++(GNU C,GNU C ++,Watcom C)版本。对我们来说,软件是为Linux,Linux x64,QNX 4和QNX6构建的。我们设置它的方式是:

  • 运行Windows的Hudson服务器的1 x VM
  • 4个虚拟机,每个从属类型一个,所以我有4个Hudson从属--QNX4,QNX6和Linux 32和Linux 64各有1个。所有这些都在同一台服务器上运行,就像不同的虚拟机一样,我们没有遇到任何问题。我们建立了大约100个项目,在4种系统类型之间几乎平分。

您不应要求任何其他硬件。有一个适用于VMWare VM的Hudson插件,可以根据需要启动它们并关闭它们。

我希望有所帮助。

答案 1 :(得分:2)

我从来没有将Hudson用于C ++,但是对于你打算做的事情,查看VMWare plugin并查看它是否能达到你想要的效果可能是有意义的。如果可能的话,我建议只有一个Hudson主人。您最想要做的是为每个目标环境设置一个带有Hudson Slave进程的VMWare机器映像,然后在该Slave中生成一个构建。

答案 2 :(得分:2)

我在一年多前的多平台场景中玩过哈德森。我在一台机器上有一台哈德逊服务器(设置起来非常容易),并且每个平台都有独立的构建从站。我记得有一段时间,其中一个构建客户端位于托管哈德森服务器的机器上的VirtualBox中。 (我想我已经将服务器安装在VM上一段时间了。)我不记得这个设置有任何原理问题。

但是,如果你想在同一台物理机器上构建多个虚拟构建机器,我认为你需要一台非常强大的机器。 C ++编译需要相当多的资源,而IIRC,当hudson开始构建时,它会同时在所有平台上启动它。

答案 3 :(得分:1)

请注意,运行Hudson的服务器与构建软件应用程序的从属计算机之间不需要任何关系。由于Java的神奇之处,您可以使用JNLP将不同的从属计算机连接到主服务器。 (一个例子)因此,无论是物理机还是虚拟机,您都可以拥有一台运行Windows,另一台运行Linux;一个32位,另一个64位;等 - 无论您的应用需要什么。只要他们都安装了JRE,他们就可以连接到Hudson master并报告构建的状态。