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

Earn badges and make progress

You're on your way to the next level! Join the Kudos program to earn points and save your progress.

Deleted user Avatar
Deleted user

Level 1: Seed

25 / 150 points

Next: Root

Avatar

1 badge earned

Collect

Participate in fun challenges

Challenges come and go, but your rewards stay with you. Do more to earn more!

Challenges
Coins

Gift kudos to your peers

What goes around comes around! Share the love by gifting kudos to your peers.

Recognition
Ribbon

Rise up in the ranks

Keep earning points to reach the top of the leaderboard. It resets every quarter so you always have a chance!

Leaderboard

Determine which Repo triggered a build

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.
Jun 19, 2019 • edited Jun 27, 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.

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.
Jun 20, 2019

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

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

Any chance?

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