changes.
| h2. Situation |
| Send built artifacts to all Linux x86 32bit agents for testing. After test finishes, publish test reports on these agents to QuickBuild server. |
| |
| h2. Demonstration |
| To demonstrate this, two agents are set up at the demo site, with below grid user attributes: |
| {code}arch=linux-x86-32{code} |
| Our purpose is to run tests on all agents with this attribute. In our demonstration, agents matching this criteria are _sea.pmease.com:8811_ and _sea.pmease.com:8812_. |
| # Switch to the [test configuration|http://demo.pmease.com/dashboard/85], and hit the run button. |
| # Change to [overview page of latest build|http://demo.pmease.com/build/85:latest/overview] after build finishes, and you will see two set of test reports are published, one is for agent _sea.pmease.com:8811_, and another is for agent _sea.pmease.com:8822_. |
| # The [step status page of latest build|http://demo.pmease.com/build/85:latest/step_status] also indicates that tests have been run on these two agents. |
| |
| h2. Resolution |
| | Switch to [steps page of the test configuration|http://demo.pmease.com/settings/85/steps]: |
| # The _checkout_ step pulls project source code out of SCM. |
| # The _build jar_ step produces build artifacts, which is a jar in this case. |
| # The _test on all applicable agents_ step is a parallel composition step, and it will run all contained steps concurrently. It will also repeat child steps in a concurrent way if child steps are configured with repeating params. |
| # The _test on agent_ step is a sequential composition step: |
| ## This step is configured with a repeat param. The param name is set as _agent_, and param values is set as addresses of all build agents with attribute _arch_ equals to _linux-x86-32_. |
| ## This step is set to run on grid node with address equals to param _agent_. This is done through property _node selection_. |
| ## This step is configured to fetch necessary test files from parent node (the node running parent step) to current node (the selected agent) through the property _fetch input files_. |
| ## The above settings effectively makes the _test on agent_ step running on all linux-x86-32 agents, and these agents will run this step concurrently since it is contained in a parallel composition step. |
| # The step _test on agent_ contains two child steps, respectively _run test_ and _publish test reports_. Since _test on agent_ is set to run on all applicable agents, these two child steps will also run on those agents to do the actual work. |