jenkinsci/jenkins — pull request #387 by thors (2012-02-23 13:47:23+00:00)
Title: FIXED JENKINS-12778: Allow multiple touchstone combinations in order to ...

This pull request replaces pull/377 (Jenkins 12778 fixed), which was also proposed by me. The reason for the new user name is that I made some mistake with my first fork as tho74 (I committed some modifications to master on my fork) and needed to fork again. Now I want to delete my old user account (and therefore the old fork). I took the opportunity to clean up and collect all modifications in one change-set.)

This branch implements http:://issues.jenkins.org/browseJENKINS-12778, support for multiple touchstones in matrix builds. Motivation is to organize build, test and deployment for multiple platforms in separated groups and to execute each group only if the preceding group matches expectations. For me this feature would have a huge positive impact. (More detailed description is in the ticket)

Summery of implementation:
In MatrixBuild::RunnerImpl::doRun
* I replaced the destinct groups touchStoneConfigurations and delayedConfigurations by the list groupedActiveConfigurations.
* The text configuration field touchStoneCombinationFilter is split using semicolon as separators.
* The duplicate code to execute touchStoneConfigurations and delayedConfigurations is replaced by a loop executing each member of groupedActiveConfigurations
* Updated help text on config page accordingly.

I tested manually Matrix builds:

with inactive touchstone option
with active touchstone option but empty touchStoneCombinationFilter
with touchStoneCombinationFilter contains multiple semicolon only
with one combination, no semicolon at end
with one combination, semicolon at end
with multiple combination, no semicolon at end
with multiple combination, semicolon at end
with multiple combination, one step expected to fail the build

A tar archive with these job configurations is attached to the ticket.

The japanese help text for touchstone builds is not updated, I don't have the expertize.