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.