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

Determine which Repo triggered a build

Ari_Mahpour
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 14, 2019

Hello,

I have a build plan that has multiple Git Repos.  I also have a polling trigger setup that checks all of them.  if any of them have new commits, the build triggers.  this works great.

what i need,  is a way to determine from environment and/or bamboo variables, which repo triggered the build. currently bamboo gives me every repo's info in the form of "bamboo_planRepository_#_key=value"

This information is available on the build summary page in the commit section as seen below

trigger.png

2 answers

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

Hi @Ari_Mahpour

You could get this information by comparing revisions of each source repository. You will need to check the following Bamboo variables:

  • bamboo_planRepository_#_revision
  • bamboo_planRepository_#_previousRevision

Considering this could be a pain for you I spent some time to build a bash shell script to do this. It is just an example of how this could be done. Please be careful with a loop like this since it can hold your build in running state forever.

echo ===========================================================
i=1
while true
do
   repoRevision='bamboo_planRepository_'$i'_revision'
   prevRepoRevision='bamboo_planRepository_'$i'_previousRevision'
   if [ -z "${!repoRevision}" ]; then
      break
   else
      repoRevision=$repoRevision
      prevRepoRevision=$prevRepoRevision
      if [ ${!repoRevision} != ${!prevRepoRevision} ]
      then
        repoName='bamboo_planRepository_'$i'_name'
        repoBranch='bamboo_planRepository_'$i'_branch'
        echo 'The repository '${!repoName}' ('${!repoBranch}') was updated'
        echo 'Revision: '${!repoRevision}
        echo 'Previous revision: '${!prevRepoRevision}
      fi
      i=$(( $i + 1 ))
    fi
done
echo ===========================================================

⚠️It will not work for Windows. In case you run windows agents you will need to design a similar script for using a windows shell of your preference.

The output should be something like:

19-Jun-2019 18:24:24 ===========================================================
19-Jun-2019 18:24:24 The repository javahello (master) was updated
19-Jun-2019 18:24:24 Revision: c3df16947412c1ca69f9e58998d8dd645221f8f5
19-Jun-2019 18:24:24 Previous revision: 55db9a76e132b853c2309aa2cf6c1963e53f06f4
19-Jun-2019 18:24:24 ===========================================================

 I hope that helps you to achieve what you want.

josh bouganim June 19, 2019

This is awesome.  Never noticed that the previous and current rev vars could be the same.  Thanks!

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

You are welcome @josh bouganim
I'm glad to be helpful.
Have a good one!

0 votes
alvaro montoya
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!
April 1, 2021

thank you for the solution but the bamboo team should really make these trigger variables available.

Any chance?

Michael Trostle October 4, 2021

you can put in a request for an enhancement...if it gets that far, I wouldn't expect a quick turn around unfortunately

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events