Become A CI Build Slave

12 January, 2013


Our community have very few dedicated official resources: running and so on either takes cash or donations.

The new CI work is rather heavy CPU wise, and limited to (CentOS)
Linux builds only. However, Jenkins supports the use of headless build
slaves that connect TO a Jenkins master, permitting these slaves to
run while still behind NATs.

I've been experimenting these past few days investigating using build
slaves. I've set up jobs for building FreeBSD VMs (both broken,
because FreeBSD support does lag behind the other platforms) and for
running Trunk tests on OS X. You can see that we have some (known)
network issues on OS X here:

It's pretty easy to run a build slave. If you wish to donate some
computing time, ask here and we can create a node for you, with a
(unique) name of your choice. Once that's done, you need to
* have (a recent version of) Java installed
* download the slave.jar from
* run the jar somehow. On a Unix machine that'll be $ java -jar
slave.jar -jnlpUrl${SLAVENAME}/slave-agent.jnlp. On a
Windows machine, running java from a command prompt should be
perfectly sufficient, if you don't feel like figuring out how to turn
the agent into a service.

What are the downsides? Jenkins masters can send arbitrary Java
classes to a slave for running. That means that if's
Jenkins was compromised, your build slave could potentially be
compromised. You will want to, at the minimum, run the slave under a
dedicated user with low privileges.

You can find more reading material here:




Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: