A multi-configuration project is useful for instances where your builds will make many similar build steps, and you would otherwise be duplicating steps.
The Configuration Matrix allows you to specify what steps to duplicate, and create a multiple-axis graph of the type of builds to create.
For example, let us say that we have a build that we want to create for several different targets, and we want to produce both debug and release outputs. Normally, we would have the following:
Ant: set-target-alpha debug compile
We can reduce this to one ant target:
Ant: $target $releasetype compile
We do this by adding two User Defined Axis in the Configuration Matrix
The Names are exposed to the ant scripts as environment variables. The Value is a space delimited list of points to iterate through for each axis.
The immediate upshot is that if we have another release type to add (for example, debug-optimized), we can simply add that rather than adding 12 more ant projects.
: you have to choose "Build multi-configuration project" when creating a project, it can't be changed later. If you skip this step, you will be very confused and not get very far.
Some links explaining this feature a bit more:
Newbie Note: Each configuration is akin to an individual job. It has its own build history, logs, environment, etc. The history of your multi-config job only shows you a list of configurations executed. You have to drill into each configuration to see the history and console logs.
A matrix build project (that uses the Slave axis) will use one additional executor ("master executor"?) on a random node to coordinate the executions on the nodes defined by the Slave axis.
Skip to end of metadata Go to start of metadata