Can I assign a value to a bamboo variable in script?

Mark Neilson July 15, 2014

I want to be able to use a script to parse a file, read out a value and then assign this value to a plan variable. I cannot see a way of assigning the variable however.

I have tried various scripts like:

Write-Output Initial Date: "${bamboo.CURRENT_ASSEMBLY_VERSION}"
set "bamboo_CURRENT_ASSEMBLY_VERSION=$rawVersionNumber"
Write Output Should have set to: $rawVersionNumber
Write-Output Using the shared assembly version number: "${bamboo.CURRENT_ASSEMBLY_VERSION}"

Is this possible with Elastic Bamboo?

6 answers

3 votes
John Gill March 19, 2018

4 years later and we still don't have a "good" solution for managing variables that might come up during the build... why is this not a surprise with Atlassian. 

Alexey Chystoprudov
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
March 20, 2018

Inject Variable task is part of Bamboo and it should be used to propagate variables from environment to other tasks, jobs and stages

Like # people like this
Sergey July 26, 2018

Hi Alex,

I need variable with date.
Trying to get date in inline or file script: DateStamp="$(date +%m-%d-%Y)"

 

Further attempts to access variable failed. E.g. ${bamboo.DateStamp} returns error "bad substitution" in current script as well as next task script.

 

Is any way to create accessible variable during the build?

Alexey Chystoprudov
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
July 26, 2018

@Sergey, as I wrote you should use Inject Variable task

1. As part of you job create file some.properties in format

prop=value

2. Add task Inject Variables next to task you created properties file, configure it to read some.properties file. It will add variables to build context

3. Use variables in other tasks within this job or next stages

Sergey July 26, 2018

Thank you Alex.
I did it with injector. It looks ok for cases like my when you need add one variable or group of variables at once. One task for file creation, one injection task.

But if I need change variables several times? E.g. 17. 
Is it really I need to add 17 tasks for file creation/update and 17 injection tasks? 

Like NagiReddy1234 likes this
Alexey Chystoprudov
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
July 26, 2018

I'm afraid yes. But please don't do it manually, use Bamboo Specs to automate your plan configuration. Cause it will be a pain to maintain these 17 tasks

Sergey July 26, 2018

Thank you. I'll mention it in future.


I just used to use variables as variables, not a constants ) It was a surprise for me that Bamboo doesn't allow to use them like ${var}=some.build.result.value across jobs and scripts.

Like anddave likes this
anddave December 12, 2018

Yknow what tool totally DOES do this?  ActiveBatch by ASCI.  :) Just sayin.  I love Bamboo but also the nuisance factor is higher than it needs to be.

1 vote
Gretchen
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
August 3, 2014

You can use the injection variable plugin to simulate this. Basically you write out to a text file, then read it in from the injection plugin task once it's there, you can use it as a variable within the same stage. I think you have to reload it in a new stage, which is a nuisance but works fine.

0 votes
anddave June 23, 2020

I have written an internal prototype that I can't share with you, BUT I can tell you what I did.  I downloaded Atlassian SDK and wrote a plugin for Bamboo that adds a REST call to set a plan branch var.

0 votes
Saifuddin_Raj June 11, 2020

This is disappointing. The sole purpose of declaring variables is to be able to update it from within the build/tasks.

Stephen Reece September 22, 2020

Yeah, that would be ideal.

0 votes
Mark Neilson August 5, 2014

Ah, this plugin doesn't seem to be available for the cloud. We are running Elastic Bamboo. I thought that this meant that it is not currently able to be run with our version?

0 votes
Felipe Kraemer
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
July 15, 2014

Hi Mark,

It is currently impossible to change a variable value from within tasks while the build is running. This is being tracked here:

https://jira.atlassian.com/browse/BAM-10272

I would suggest adding any comments to the issue above as well as voting on the issue to create it's popularity and likelihood of being implemented in a future release.

For more information on how Atlassian implements new features and improvements please see the following document:

http://confluence.atlassian.com/display/DEV/Implementation+of+New+Features+Policy

Kind regards,
Felipe Kraemer
Atlassian Support

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events