I'm using the continuous integration server Hudson as part of the jGridstart development process. An important aspect is testing the software on multiple platforms. Installing Hudson is pretty straightforward in unix-like OSes. Windows needs some attention though, which is described here.
A specific requirement is that the graphical user-interface is available for testing under a non-root/non-Administrator account. This really requires one to use (virtual) dedicated machines for running slaves, which is sane anyway; one really wants to have a controlled build environment.
Installation of a Hudson Windows slave
- Install the Windows OS
- Create an ordinary user (e.g. hudson), and setup auto-login (KB324737).
- Install UnxUtils (see also here), and copy sh.exe to C:\bin (or whichever drive you use for Hudson); make sure it can be found in the PATH.
- Install the Java runtime from java.com
- Create a node in Hudson (type JNLP)
- Start Hudson at login by creating in the start menu's startup application folder a shortcut to: javaws http://hudson/computer/win/slave-agent.jnlp.
I've ran Hudson on Windows XP professional 32-bit (working on 64-bit), and Windows server 2003. Note that automatic installation of java environments can run into problems because the user has no administrative rights. You might want to add these, but my tests need to run as an ordinary user so that's no option. Installing JDKs manually as administrator is an option, or running the slave agent as administrator when a new JDK needs to be installed is another option.
Installation of a Hudson Mac OS X slave
Virtualisation using Parallels Desktop and Mac OS X Server (Leopard and Snow Leopard); it appears that you can't install regular desktop versions as virtual machines.
- Install Mac OS X
- Create an ordinary user (e.g. hudson), and setup auto-login
- Create a node in Hudson (type JNLP), and set JDK tool locations to /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home (for java 1.5.0, or use another number like 1.6)
- Start Hudson at login by opening the AppleScript editor, and entering do shell script "javaws http://my.hudson/computer/node/slave-agent.jnlp" (see here), and saving it as an application bundle. Drag that to the taskbar, right-click on it, and make it run at startup.