Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Bamboo variable replacement in batch file

Tags:

bamboo

We're running Atlassian's Bamboo build server 4.1.2 on a Windows machine. I've created a batch file that is executed within a Task. The script is just referenced in a .bat file an not inline in the task. (e.g. createimage.bat)

Within the createimage.bat, I'd like to use Bamboo's PLAN variables. The usual variable syntax is not working, means not replaced. A line in the script could be for example:

goq-image-${bamboo.INTERNALVERSION}-SB${bamboo.buildNumber}

Any ideas?

like image 479
Chris Avatar asked Aug 30 '12 12:08

Chris


People also ask

How do I run a shell script in Bamboo?

Go to the Tasks configuration tab for the job (this will be the default job if creating a new plan). Select the name of the desired script task, or select Add task > Script if creating a new task. A description of the task, which is displayed in Bamboo. Check or clear to selectively run this task.

What is Bamboo build working directory?

The Working Directory is where Bamboo temporarily puts the checked-out files it is building. The location of this directory was specified using the Setup Wizard, can be viewed as described in Bamboo's system information, and can be changed as described below.


1 Answers

You are using the internal Bamboo variables syntax, but the Script Task passes those into the operating system's script environment and they need to be referenced with the respective syntax accordingly, e.g. (please note the underscores between terms):

  • Unix - goq-image-$bamboo_INTERNALVERSION-SB$bamboo_buildNumber
  • Windows - goq-image-%bamboo_INTERNALVERSION%-SB%bamboo_buildNumber%

Surprisingly, I'm unable to find an official reference for the Windows variation, there's only Using variables in bash right now:

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).

However, I've figured the Windows syntax from Atlassian's documentation at some point, and tested and used it as documented in Bamboo Variable Substitution/Definition:

  • these variables are also available as environment variables in the Script Task for example, albeit named slightly different, e.g. $bamboo_custom_aws_cfn_stack_StringWithRegex (Unix) or %bamboo_custom_aws_cfn_stack_StringWithRegex% (Windows)
like image 58
Steffen Opel Avatar answered Oct 31 '22 10:10

Steffen Opel