目前我们正在为Win32平台构建一些C ++应用程序。我们将很快移植到Linux,然后可能更多(两者都是32位和64位)。
标准做法是什么,您是否在自己的平台上使用多个哈德森服务器进行构建,或者哈德森服务是否创建虚拟机并进行构建?
我不清楚这样做的最佳实用方法。
理想情况下,我只想要一个带有一堆运行hudson的VM的盒子,然后根据需要启动构建。
有人可以指点我这个资源吗?
答案 0 :(得分:5)
我们使用Hudson来管理多个操作系统的C / C ++(GNU C,GNU C ++,Watcom C)版本。对我们来说,软件是为Linux,Linux x64,QNX 4和QNX6构建的。我们设置它的方式是:
您不应要求任何其他硬件。有一个适用于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并报告构建的状态。