Posted by kohsuke
on July 27, 2007 at 3:04 PM PDT
I just released a new version of Hudson (1.122.) One note-worthy new feature in this release is the ability to run builds/tests on a large number of configurations, called "matrix project" feature.
I just released a new version of Hudson (1.122.) Along with the usual bug fixes and improvements , this version includes one note-worthy feature, which is what I call "matrix project."
Here's how this new job type is typically useful. Let's say you are developing the JAX-WS RI . This project needs its tests to run on many different environments. We need to test on Solaris, Linux, and Windows. We need to test with Glassfish, Tomcat, and Jetty. We need to test with JDK5 and JDK6. We need to test with two kinds of different StAX implementations. If you test all possible combinations, you have 36 different combinations. With free-style software project, you need to set up 36 different jobs that are almost identical to each other. This is clearly unmaintainable.
Matrix project is designed to handle situations like this. It lets you set up a single configuration with user-defined parameters, and when you tell Hudson to build it, it will build all the possible combinations of parameters and aggregate results for easier comprehension.
In addition to testing, this job type should be also useful for building a software project for multiple target platforms. For example, products like Glassfish need to be built on different target platforms to produce native binaries.
This is still a preliminary feature, so do expect some unpolished UIs/features and rough edges, but I do plan on improving this area, and your feedback would be always welcome.