Downloads (PDF, HTML & XML formats)
[Bamboo OnDemand Docs]
[Bamboo Knowledge Base Home]
Variables can be used to set static values that are used when building plans in Bamboo.
See Defining global variables for information on defining global variables.
The usage format for all global variables is:
${bamboo.globalVarName}
On this page:
See Defining plan variables for information on defining plan variables. You can override a plan variable for a build, if you have triggered the build manually. For details, see Triggering a plan build manually.
The usage format for all plan variables is:
${bamboo.varName}
The following build-specific variables are available by default:
Build-specific variable | Source | Description |
|---|---|---|
bamboo.buildKey | Bamboo property | The job key for the current job, in the form PROJECT-PLAN-JOB, e.g. |
| bamboo.buildResultKey | Bamboo property | The result key when this job executes, in the form PROJECT-PLAN-JOB e.g. BAM-BOO-JOB1 |
| bamboo.buildResultsUrl | Bamboo property | The URL of the result in Bamboo once the job has finished executing. |
bamboo.buildNumber | Bamboo property | The Bamboo build number, e.g. |
bamboo.buildPlanName | Bamboo property | The Bamboo plan name e.g. |
bamboo.buildTimeStamp | Bamboo property | The time when build was started in ISO 8601 format e.g. |
bamboo.buildForceCleanCheckout | Bamboo property | Whether the "Force Clean Build" option was used, values:true/false |
bamboo.build.working.directory | Bamboo property | The working directory that the build is being executed on |
| bamboo.ManualBuildTriggerReason.userName | Bamboo property | The user who triggered the manual build |
bamboo.repository.revision.number | Plugin | The revision number |
| bamboo.repository.branch.name | The repository branch name (for Bamboo version 4.2 or later) | |
bamboo.repository.previous.revision.number | Plugin | The previous revision number (might not exist if for example is initial build) |
bamboo.custom.svn.revision.number | Plugin | (For Subversion only) The revision number |
bamboo.custom.svn.lastchange.revision.number | Plugin | (For Subversion only) The last changed revision number |
bamboo.custom.svn.username | Plugin | (For Subversion only) User name used for repository authentication |
bamboo.repository.svn.repositoryUrl |
| (For Subversion only) The repository url |
bamboo.custom.cvs.last.update.time | Plugin | (For CVS only) The last updated timestamp |
bamboo.custom.cvs.last.update.time.label | Plugin | (For CVS only) The last updated timestamp to be used as a label for post build result labelling. The spaces in the cvs version string are replaced with '_' |
bamboo.custom.p4.revision.number | Plugin | (For Perforce only) The change set number |
bamboo.custom.p4.username | Plugin | (For Perforce only) User name used for repository authentication |
bamboo.custom.p4.port | Plugin | (For Perforce only) Port used for repository communication |
bamboo.custom.p4.client | Plugin | (For Perforce only) Client used for repository communication |
| bamboo.repository.git.branch | (For Git only) The branch | |
| bamboo.repository.git.repositoryUrl | (For Git only) The repository url | |
bamboo.repository.hg.repositoryUrl |
| (For Mercurial only) The repository url |
bamboo.repository.hg.branch |
| (For Mercurial only) The branch |
bamboo.repository.hg.username |
| (For Mercurial only) User name used for repository authentication |
The usage format for all build-specific variables is:
${bamboo.varName}
Note that these JIRA variables can be accessed from a Bamboo build only when that build was triggered by releasing a version in JIRA.
| JIRA variable | Description |
|---|---|
| ${bamboo.jira.baseUrl} | The URL of your JIRA server. |
| ${bamboo.jira.projectKey} | The key of the triggering JIRA project. |
| ${bamboo.jira.projectName} | The name of the triggering JIRA project. |
| ${bamboo.jira.version} | The release version of the triggering JIRA project. |
| ${bamboo.jira.username} | The username of the user who triggered the release build. |
The usage format for all system variables is:
${system.<variable>}
For example, if you have a system variable MYPATH=C:\MyPath; you can use a Bamboo system variable system.MYPATH which will inherit the same value as the system variable.
In older Bamboo versions using 'PATH' in the Environment Variables field (of a Script task) doesn't set the windows PATH variable, whereas using 'Path' sets Path and PATH in cmd shell.
Bamboo variables are exported as bash shell variables. The name is converted to upper case and all full stops (periods) are converted to underscores. For example, the variable bamboo.my.variable is $BAMBOO_MY_VARIABLE in bash.
Variables can be used in the following fields of your build plan:
Field | Global | Build-specific | System |
|---|---|---|---|
Goal (for Maven builders only) | |||
Build File (for Ant and NAnt builders only) | |||
Target (for Ant and NAnt builders only) | |||
Options (for NAnt builders only) | |||
Script (for Scripts only) | |||
Argument (for Scripts and Custom Commands only) | |||
Environment Variables | |||
Repository URL (for Subversion repositories only) | |||
Web Repository URL (for Subversion, CVS and Perforce repositories) | |||
CVS Root (for CVS repositories only) | |||
Branch name (for CVS repositories only) |
For example, you may want your Maven 2 version to be determined by Bamboo. In Maven 2 pom.xml you may have:
...
<groupId>com.atlassian.boo</groupId>
<artifactId>boo-test</artifactId>
<packaging>jar</packaging>
<version>1.1.${bambooBuildNumber}-SNAPSHOT</version>
...
You can then specify the following in the Goal field of your build plan:
clean package -DbambooBuildNumber=${bamboo.buildNumber}
When the command runs, Bamboo will replace the buildNumber with the actual number (e.g. 1102), which will be passed to the underlying Maven build to use. The command will then produce a jar that looks like this: boo-test-1.1.1102-SNAPSHOT.jar.
You can then specify the following in the Target field of your build plan:
-f build.xml -DbambooBuildNumber=${bamboo.buildNumber}
When the command runs, Bamboo will replace the buildNumber with the actual number (e.g. 1102), which will be passed to the underlying Ant build to use.
You can also specify a capability to be used in a similar way to a global variable.
The format of the capability should be as follows:
${bamboo.capability.<capability_key>}
For example,
Custom
${bamboo.capability.<capability_key>}
JDK
${bamboo.capability.system.jdk.<jdk_label>}
Builder
${bamboo.capability.system.builder.<builder_type>.<builder_label>}
e.g. ${bamboo.capability.system.builder.maven.Maven1}
Perforce
${bamboo.capability.system.p4Executable}
If you click on a capability, the specific capability key will be contained in the URL.
Please note, the space characters in the URL will be replaced with '+' characters. We recommend that you do not use capability labels with space characters, if you wish to use them as variables. A possible solution for space characters is to format them with '${}' symbols, however, this does not work in all cases.
Global and Build-Specific Variables can be used in a specific fields of your build plan, as specified above. For capabilities,
For example,
If you wanted to specify a system variable, but have it set to different values on each agent, do the following:
Set the following as a system environment variable field on the Builder tab:
${bamboo.capability.thatsystemvariable}