Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
4,366,260
Community Members
 
Community Events
168
Community Groups

How to use Bamboo variables in an app's code

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

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}"
  }
}

Thanks! This worked for me.

Like Eduardo Alvarenga likes this

Suggest an answer

Log in or Sign up to answer
TAGS

Atlassian Community Events