Hudson: Review and ideas
In June I had the pleasure to do a review of the first German book about CI with Hudson by Simon Wiest. The book is announced for December 2010 and it will cover topics from basic (setup, first jobs) up to deep knowledge like writing plugins for Hudson.
As with earlier reviews I had printed the book (draft), read it and made comments on the side (and Simon had to listen to them for hours😉
But some comments weren’t for the author – they „just“ ideas which came into my mind. But because I won’t have the time for implementing them, I’ll write about them …
The main idea is automatic dispatching of jobs to slaves according to their needs. If I remember right, TeamCity has this feature too …
The slaves have some capabilities. There are two kinds of them:
- automatic capabilities: result from tool configuration, operating system, jdk versions, build tool name+version, …
- manual capabilities: the admin of the slave can define key-value pairs
For jobs you define requirements according to the provided capabilities. And like them there are two requirements:
- automatic requirements: selected jdk, build tool, operating system (if you use e.g. a Windows Batch …)
- manual requirement: define additional requirements (or overwrite the complete formula). Use key=value (aspectj.available=true) or comparisons (ant.version >= 1.8) and combine them (and, or, xor, …)
The dispatcher must select all slaves which fit the defined requirements. From this list it selects the one by looking at the build queue of the slave (does it have time for building?) and net-response-time (don’t forget that much data has to be transfered …)
Not sure if there is something like this now ….😉en, Hudson comment below, or link to this permanent URL from your own site.