Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Dynamic git source code checkout

Philippe Weber
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
June 6, 2019

Hello,

I'm trying to achieve a git checkout of a specific tag/commit controlled by the execution of the build process.

In the plan configuration, I defined the repository to use a variable as a branch

Screenshot from 2019-06-06 15-10-19.png

For it to work a default value must be assigned as a Plan variable, here using masterScreenshot from 2019-06-06 15-09-55.png

Then in the build execution this variable value is overridden with a specific commit hash.

 

My issue is that when the corresponding Source code checkout task is executed, it is first checking out the repository before substituting the variable.


simple 06-Jun-2019 14:41:24 Starting task 'Checkout' of type 'com.atlassian.bamboo.plugins.vcs:task.vcs.checkout' simple 06-Jun-2019 14:41:24 Checking out into /ec/local/citnet/bamboo-agent-home/xml-data/build-dir/DISSCHAIN-DISSCHAINSOA25-REE/disschain-impl/extraction simple 06-Jun-2019 14:41:24 Updating source code to revision: 94b8954182c9d96cb7f511b0a62caf226eb76b7a command 06-Jun-2019 14:41:24 Substituting variable: ${bamboo.sources.release.tag} with 99b82efeed26c459d79d29cfd7d38226b88c55e8

So I end up with the wrong content.

I suppose the issue is because the repository is pooled for Change Detection by the Bamboo build upfront, but that is not what I need. In my case this is a copy of the main repository

I hope there is another configuration to achieve such dynamic checkout, but I need help finding it please...

 

 

1 answer

0 votes
Daniel Santos
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
June 10, 2019

Hello @Philippe Weber

I think I understand what you need, but I also know that you cannot achieve it using the strategy you planned.

Bamboo will now allow you to change server instance variables. The best you can do is to change them in the terminal, but that will not serve to your purpose. Tasks run from JAVA runtime which evaluates the variables before running the command on terminal.

Reference on variables not being overwritten:

I see two options for you to move forward:

  1. Run a customized build
    You will be able to give a specific value to any plan variables if you run a customized build. More details at: Running a plan build manually.
  2. Check out your code from a script task
    You won't have the facilities of a task or shared credentials for this, but you should be able to check out any repository as you can from your terminal.

I hope that helps.

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events