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

This widget could not be displayed.

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.

This widget could not be displayed.

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

This widget could not be displayed.

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?

This widget could not be displayed.

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.

Suggest an answer

Log in or Sign up to answer
Atlassian Summit 2018

Meet the community IRL

Atlassian Summit is an excellent opportunity for in-person support, training, and networking.

Learn more
Community showcase
Posted Wednesday in New to Jira

Are you planning to trial, or are currently trialling Jira Software? - We want to talk to you!

Hello! I'm Rayen, a product manager at Atlassian. My team and I are working hard to improve the trial experience for Jira Software Cloud. We are interested in   talking to 20 people planning t...

155 views 2 0
Join discussion

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