This page last changed on Oct 16, 2008 by alui.
A requirement is an agent capability required by a build plan.
Together, capabilities and requirements control which agents can execute builds for particular plans. Each plan can only be built by agents whose capabilities meet the plan's requirements.
There are four types of capabilities in Bamboo:
- Builder capability — Every plan has one 'Builder' capability requirement.
- JDK capability — A plan has either one 'JDK' capability requirement or none, depending on the plan's 'Builder'.
- Custom capability — A plan can have multiple 'custom' capability requirements (or none).
- Perforce capability — A plan will have a 'Perforce' capability requirement automatically specified, if Perforce was selected as the source repository.
 | What are custom capabilities?
Custom capabilities can be used to control which build plans will be built by a particular agent. For example, if the builds for a particular plan should only run in a Windows environment, you could create a custom capability 'operating.system=WindowsXP' for the appropriate agent(s), and specify it as a requirement for this plan.
Note that before you can specify them in your build plan, you need to first define your custom capabilities in your Bamboo system (see Configuring a new Custom Capability).
|
To specify a plan's Builder capability requirement,
Choose a value for the 'Builder' field on the plan's 'Builder Configuration' tab. Please see Specifying a Plan's Builder for instructions.
To specify a plan's JDK capability requirement,
Choose a value for the 'Build JDK' field on the plan's 'Builder Configuration' tab. Please see Specifying a Plan's Builder for instructions.
To specify a plan's custom capability requirements,
If you are creating a new plan, start at step 5.
- Click 'Home' to go to the Dashboard.
- Click the 'All Plans' tab.
- Locate the plan in the list and click this icon:

- The 'Configuration' tab will be displayed. Click the 'Plan Requirements' sub-tab.
- The 'Plan Requirements' sub-tab will be displayed (see screenshot below), showing a list of all the plan's current capability requirements and a list of 'Capable Agents' (i.e. agents which meet the plan's requirements and are therefore capable of running a build for this plan).
- If you have previously set up your custom requirement (e.g. on another project), you can select it from the 'Requirement' dropdown in the 'Add Extra Requirements' section and continue from step 9. If you are setting up a new custom requirement, select 'New custom requirement' instead and complete the following steps.
- In the 'Add Extra Requirement' section, in the 'Key' field, type the key of the capability which you want this plan to require.
- In the 'Add Extra Requirement' section, in the drop-down box below the 'Key' field, select one of the following:
- 'exists' — this plan can be built by any agent that has a custom capability with the same Key as the one you have just specified.
- 'equals' — this will display a text field for you to enter an exact value. This plan can be built by any agent that has a custom capability with the same Key and value.
- 'matches' — this will display a text field for you to enter a regular expression (for more information about regular expressions, please visit http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html#sum). This plan can be built by any agent that has a custom capability with the same Key as the one you have just specified, where the value matches this regular expression.
- Click the 'Add' button to add your new custom capability to the plan's list of requirements.
The displayed list of 'Capable Agents' will be updated, as the plan can now only be built by agents which have a custom capability that meets the new custom requirement you have specified.
- Click the 'Save' button if you are editing an existing plan; or if you are creating a new plan, click the 'Next' button and go to Specifying a Plan's Build Artifacts or click the 'Summarise' button and go to Completing and Enabling a New Plan (hidden).
Screenshot: 'Edit Capability Requirements'

 | The 'Capability Requirements' tab (see screenshot above) shows all of a plan's capability requirements: Builder, JDK and custom capabilities. It also shows which agents meet the requirements (i.e. are capable of building the plan).
|
|