Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use hudson when building for multiple platforms

Right now we are building a number of C++ apps for Win32 platform. We will be soon porting to Linux and then maybe more (32 and 64 bits for both).

What is the standard practice , do you use multiple hudson servers each on their own platform to do a build, or does the hudson service create VMs and do builds?

It is not clear to me the best practical way to do this.

Ideally I just want one box with a bunch of VMs running hudson, and then it kicks off builds as needed.

Is there a resource someone can point me to for this?

like image 988
Tim Avatar asked Oct 02 '09 20:10

Tim


People also ask

Is Hudson free to use?

Released under the MIT License, Hudson is free software. Builds can be started by various means, including scheduling via a cron -like mechanism, building when other builds have completed, and by requesting a specific build URL. Hudson became a popular alternative to CruiseControl and other open-source build servers in 2008.

How much does Hudson cost?

Released under the MIT License, Hudson is free software. Builds can be started by various means, including scheduling via a cron -like mechanism, building when other builds have completed, and by requesting a specific build URL.

What is the extensibility of Hudson?

Hudson is extensible through a plugin architecture, and many plugins have been made publicly available which extend it far beyond purely being a build tool for Java projects. Plugins are available for integrating Hudson with most version control systems and bug databases.

How do I create multiple platforms for a single solution?

Use the Configuration Manager to add at least two target platforms for the solution. Use the Batch Build window to build several solution configurations at once. It is possible to have a solution-level platform set to, for example, x64, and have no projects within that solution targeting the same platform.


1 Answers

We use Hudson to manage C/C++ (GNU C, GNU C++, Watcom C) builds for multiple OSs. For us, software is built for Linux, Linux x64, QNX 4, and QNX6. The way we have it set up is:

  • 1 x VM for the Hudson server, running Windows
  • 4 x VMs, one for each slave type, so I have 4 Hudson slaves - 1 each for QNX4, QNX6 and Linux 32 and Linux 64. All of them are running on the same server, just as different VMs, and we have faced no problems. We build about a 100 projects, divided almost equally between the 4 system types.

You should not require any additional hardware. There is a Hudson plugin that works with VMWare VMs, to start them up and shut them down as required.

I hope that helps.

like image 160
Sagar Avatar answered Oct 15 '22 08:10

Sagar