Can I assign a value to a bamboo variable in script?
Asked by Mark Neilson:

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?


Answers:
author: John Gill
body: 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.

comments: author: Alexey Chystoprudov
body: Inject Variable task is part of Bamboo and it should be used to propagate variables from environment to other tasks, jobs and stages


author: Sergey
body: 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?


author: Alexey Chystoprudov
body: [@Sergey](/t5/user/viewprofilepage/user-id/1633216), 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


author: Sergey
body: 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?


author: Alexey Chystoprudov
body: 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


author: Sergey
body: Thank you. I'll mention it in future.

<br />

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.


author: anddave
body: 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.


author: Gretchen
body: 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.


author: anddave
body: 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.


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

comments: author: Stephen Reece
body: Yeah, that would be ideal.


author: Mark Neilson
body: 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?


author: Felipe Kraemer
body: 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)<https://jira.atlassian.com/browse/BAM-10272>

I would suggest adding any comments to the issue above as well as [voting](https://confluence.atlassian.com/display/JIRA/Watching+and+Voting+on+an+Issue) 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)<http://confluence.atlassian.com/display/DEV/Implementation+of+New+Features+Policy>

Kind regards,  
Felipe Kraemer  
Atlassian Support