Skip to main content

MSI installers for Hudson

Posted by kohsuke on January 26, 2010 at 3:12 PM PST

I've finally managed to produce the Windows installer for Hudson, as originally raised by Håkan Reis. Please try it out and let me know how it works.

This one took much longer than the installer for any other platforms, and while I normally think of Microsoft technologies very highly, Windows installers and WiX are a real disappointment. For example, you write the description of the installer in XML, but the language design is such that you need to write an ID for various XML elements even if you never reference them (and up until the previous version you had to write both long names and 8.3 short names) — it definitely set the new record in terms of the badly designed XML language. And once that's over, there's never ending pain of making sure that the upgrade works correctly. Anyway, hopefully that's all taken care of now, and it won't be visible to you users.

One of the highlights of this installer is that it comes with a JRE, to be fully self-contained. This is because Windows users don't normally know what to do with the *.war file, and they generally don't like going to the command prompt and running Java command manually.

Another highlight is the way I use Hudson to build the installer — I run a release process from Unix, but I need to build the installer on a Windows system. To achieve this, I use the "distfork" plugin, and ask Hudson to provision a Windows system while I build an installer. You can think of it as ssh without specifying the host name (and instead I let Hudson rent me an available Windows slave.) Unlike designating one machine to do the job, I can create as many installers as I want in parallel without a slow down.

I think this mechanism can be used for all sorts of batch processing. One more use for my Hudson cluster.

Related Topics >>

Comments

Do you supply the source to

Do you supply the source to create the msi file ?

Didn't quite work on Windows XP

I tried this out on an XP box, but it couldn't start the Hudson service at the end of the install process. It did add the Hudson service, but when I tried to start it manually before the installer rolled it back, it gave me "Error 1053: The service did not respond...in a timely fashion". Ideas?

 Yes, check the log files in

 Yes, check the log files in c:\Program Files\Hudson

bad link

The link to Dist Fork plugin has an extraneous double quote on the end which prevents it from being correct. Remove the quote and it works.

 Thanks. Fixed the link.

 Thanks. Fixed the link.

Great Installer!!

After a couple retries on localhost:8080 this worked for me. I was quite suprised to get a flawless install. Many thanks, you saved me a lot of time trying to install it manually. -Justin

Ah. I configured the

Ah. I configured the installer to wait until the service starts before launching a browser, but I bet what's happening is that there's a delay before the newly started service starts listening to 8080.