views:

57

answers:

1

I have a set of GUI automation tests that take a rather long time to run. I've been looking into a multi-configuration Hudson project to run subsections of the tests in parallel.

I'd like to set up a filter that only runs one subset on each slave node, rather than each subset on each slave node. Is there any way to include the slave node name in the Combination filter?

A: 

From the help texts of a multi configuration projects.

Build on multiple nodes

  • If multiple values are selected, the configuration matrix will be expanded to include all of them, and builds will be performed on all of the selected nodes/labels. This is useful, for example, when you'd like to run tests on Windows, Linux, and Solaris.

Combination Filter

Filtering based on values

For example, let's say you are building on different operating systems for different compilers. Assume that your slave labels are label=[linux,solaris] and you have created an axis as compiler=[gcc,cc]. Any of the following expressions will filter out cc builds on linux. Depending on how you think about this constraint, you'll probably find some more intuitive than others.

Read "if both linux and cc, it's invalid"
!(label=="linux" && compiler=="cc")

Read "for a combination to be valid, it has to be either on solaris or on gcc."
label=="solaris" || compiler=="gcc"

Read "if on Solaris, just do cc"
(label=="solaris").implies(compiler=="cc")

I think this should answer your question.

Peter Schuetze