Bamboo 4.2 : Repository triggers the build when changes are committed

"Repository triggers the build when changes are committed" has the advantage of placing minimal load on your Bamboo server. However, it requires that your source repository is configured to fire an event to the Bamboo server (which the configured Plan will 'listen for').

Configuring the repository to trigger the build when changes are committed requires two changes:

  1. Configuring your source repository.
  2. Configuring Bamboo to trigger a build on code check in.

On this page:

1. Configuring your source repository

To configure your source repository:

Configure your source code management system's repository to send post-commit event messages to Bamboo. These messages tell Bamboo to begin building the plans that use this repository.

For CVS, click here to expand...

Edit two files in the CVSROOT module: commitinfo and loginfo.

  • For commitinfo, add a line like this:

    ^jira(/|$)  /pathto/preCommit.sh
    

    where "jira" is your module.

  • For loginfo, add a line like this:

    ^jira(/|$) /pathto/postCommitBuildTrigger.sh %{} http://bambooserver JIRA-MAIN JIRA-BRANCH
    

    where JIRA-MAIN and JIRA-BRANCH are the Bamboo plans that you would like to trigger, JIRA being the project key and BRANCH or MAIN being the plan key.

Please refer to Configuring source code management triggers for Subversion.

For Subversion, click here to expand...

If you are using a remote SVN server, copy file "atlassian-bamboo/repositoryScripts/svn-triggers/postCommitBuildTrigger.sh" to the SVN repository .../hook/post-commit folder so that the postCommitBuildTrigger.sh file can be accessible from post-commit trigger file.

Edit the Subversion repository's hooks/post-commit trigger file with something like:

/pathto/postCommitBuildTrigger.sh http://bambooserver JIRA-MAIN JIRA-BRANCH

Please refer to Configuring source code management triggers for Subversion.

For Perforce, click here to expand...

 Add the script as a change-commit trigger.

triggerName change-commit //myDepot/... "/usr/local/bin/postCommitBuildTrigger.sh http://bambooServer/ MYPLAN-DEFAULT"
For Mercurial, click here to expand...

Edit the Hg respository's .hg/hgrc settings file with something like:

[hooks]
changegroup.update = /pathto/postCommitBuildTrigger.sh http://bambooserver JIRA-MAIN JIRA-BRANCH
For Git, click here to expand...

 Edit the Git respository's .git/hooks/post-receive trigger file with something like:

/pathto/postCommitBuildTrigger.sh http://bambooserver JIRA-MAIN JIRA-BRANCH
  1. Copy the scripts to your repository. If you are using the Bamboo distribution, the scripts are located in the /scripts folder of your Bamboo Installation Directory. If you are using Bamboo EAR-WAR distribution, you can find them in the /repositoryScripts folder. You can also download the scripts by following this link.
  2. Depending on which operating system your repository is running on, you may need to edit the scripts. The scripts assume that 'wget' is in '/usr/bin/'; if this isn't the case for your repository (e.g. Solaris 10 has it in /usr/sfw/bin/), edit the scripts and change '/usr/bin/' to the appropriate location.
  3. Ensure that the user which Bamboo is running as has appropriate file permissions to execute the scripts, i.e. the scripts should be executable by non-root user(s).
  4. Enable Bamboo's remote API so that the scripts can use Bamboo's REST-style remote API to access Bamboo's data.

2. Configuring Bamboo to trigger a build on code check in

Before you begin:

  • Triggering a build when there is no update — Bamboo will ignore the build triggers, if the local working copy and the repository copy have the same revision numbers. When testing your build triggers, please check that the local working copy is not the latest version - in which case, no further action will be taken.

To configure Bamboo to trigger a build on code check in:

  1. Click Dashboard and then the All Plans tab.
  2. Locate the plan in the list and click the edit icon  to display the plan's configuration pages.
  3. Click the Plan Details tab.
  4. Choose Build Strategy > Repository triggers the build when changes are committed.
  5. Only enter an IP address in Trigger IP Address if you want Bamboo to receive post-commit notifications from other than the primary IP address for the repository.

    If you use a Mercurial or Git repository then you must type the IP address of your repository host in the Trigger IP Address field.

  6. Click Save.

Screenshot: Build Strategy – repository triggers the build when changes are committed

Attachments: