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

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?

4 answers

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.

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. 

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

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?

@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

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? 

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

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.

0 votes

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

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?

Suggest an answer

Log in or Sign up to answer
Community showcase
Published yesterday in Jira Ops

Jira Ops Early Access Program Update #1: Announcing our next feature and a new integration

Thanks for signing up for Jira Ops! I’m Matt Ryall, leader for the Jira Ops product team at Atlassian. Since this is a brand new product, we’ll be delivering improvements quickly and sharing updates...

212 views 0 5
Read article

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you