Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

How to use Bamboo variables in an app's code

Samuel VanFossen May 11, 2021

In my app that's being built on Bamboo, I have the following code:

"build-aem": {
"builder": "@nrwl/workspace:run-commands",
"options": {
"commands": [
{
"command": "mvn --batch-mode release:update-versions -DdevelopmentVersion=${bamboo.buildNumber} -f ./apps/americas-aem/pom.xml"
},
{
"command": "mvn clean install -f ./apps/americas-aem/pom.xml"
}
],
"parallel": false
}
}

 What I'd like to happen is for the "${bamboo.buildNumber}" to be replaced with the actual Bamboo variable, as shown on this page:

https://confluence.atlassian.com/bamboo/bamboo-variables-289277087.html#Bamboovariables-Build-specificvariables

 

Do you know of a way to make this happen?

1 answer

1 accepted

2 votes
Answer accepted
Eduardo Alvarenga
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
May 11, 2021

Hi @Samuel VanFossen , welcome to Atlassian Community!

All bamboo variables are accessible using ${bamboo.<variablename>} in configuration, or ${bamboo_<variablename>} in scripts.

tick In your specific case with NPM you should use system variables (scripts) instead, as Bamboo variables are not accessible within that node workspace.

As documented in System variables - Using variables in bash, you should:

Using variables in bash

Bamboo variables are exported as bash shell variables. All full stops (periods) are converted to underscores. For example, the variable bamboo.my.variable is $bamboo_my_variable in bash. This is related to File Script tasks (not Inline Script tasks).

E.g. assuming you want to print Bamboo's bamboo.buildNumber with the following code:

"build-aem": {
  "executor": "@nrwl/workspace:run-commands",
  "options": {
    "command": "echo This is my Bamboo Build number: ${bamboo_buildNumber}"
  }
}

and your bamboo.buildnumber = 123 -- it will produce the following output:

12-May-2021 12:26:20 
12-May-2021 12:26:20 > bamboo@0.0.0 nx /home/bamboo/bamboo-agent-home/xml-data/build-dir/MFP-MVFP-JSJ
12-May-2021 12:26:20 > nx "build-aem"
12-May-2021 12:26:20
12-May-2021 12:26:21
12-May-2021 12:26:21 > nx run bamboo:build-aem
12-May-2021 12:26:21 This is my Bamboo Build number: 123
12-May-2021 12:26:21
12-May-2021 12:26:21 ———————————————————————————————————————————————
12-May-2021 12:26:21
12-May-2021 12:26:21 > NX SUCCESS Running target "build-aem" succeeded

Additionally, if your code already contains specific variables that are meant to be portable and/or you cannot amend it with the the bamboo_ prefix, you can alternatively declare a value for those variables under Advanced Options -> Environment Values -- this time using bamboo variables, E.g.:

In Advanced Options -> Environment Values:

BUILD_NUMBER=${bamboo.buildNumber}

In code:

"build-aem": {
  "executor": "@nrwl/workspace:run-commands",
  "options": {
    "command": "echo This is my Bamboo Build number: ${BUILD_NUMBER}"
  }
}
Samuel VanFossen May 12, 2021

Thanks! This worked for me.

Like Eduardo Alvarenga likes this

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events