[Bamboo Knowledge Base]
This page provides instructions on how to configure CVS to send message events that trigger the execution of Bamboo plans.
You only need to configure CVS to send these message events if The repository triggers the build when changes are committed trigger has been configured for one or more of your Bamboo plans.
This section explains how to configure CVS to trigger a build when the repository is changed. This involves installing two scrips:
The following commands and script files assume that your CVS server runs on a UNIX- or Linux-based operating system. If your CVS server runs on any other operating system, then you will need to modify the script files and if necessary, the commands below to suit that operating system.
First check out your repository's CVSROOT directory into a temporary directory:
cvs -d cvsroot-to-your-repository checkout CVSROOT
where:
cvsroot-to-your-repository
is the root directory pathname of the CVS repository.-d cvsroot-to-your-repository
overrides the any $CVSROOT
environment variable setting.The following files should be checked out:
U CVSROOT/checkoutlist U CVSROOT/commitinfo U CVSROOT/config U CVSROOT/cvswrappers U CVSROOT/editinfo U CVSROOT/loginfo U CVSROOT/modules U CVSROOT/notify U CVSROOT/rcsinfo U CVSROOT/taginfo U CVSROOT/verifymsg
Add a line like the following example's to the CVSROOT/commitinfo
pre-commit trigger file. The CVSROOT/commitinfo
file contains the list of programs to run whenever a file is about to be committed to the repository.
^Moo /path-to-your-bamboo-installation/scripts/cvs-triggers/preCommit.sh %r/%p
where:
^Moo
is the regular expression used to identify the name of the module (called Moo
) being updated./path-to-your-bamboo-installation/scripts/cvs-triggers/preCommit.sh
is the Bamboo shell script used to detect the last file of the check in.Add a line like the following example's to the CVSROOT/loginfo
post-commit trigger file. The CVSROOT/loginfo
file contains the list of programs to run whenever a file has been successfully committed into the repository.
^Moo /path-to-your-bamboo-installation/scripts/cvs-triggers/postCommitBuildTrigger.sh %r/%p http://bamboo-base-url MOO-KEY
where:
^Moo
is the regular expression used to identify the name of the module (called Moo
) being updated./path-to-your-bamboo-installation/scripts/cvs-triggers/postCommitBuildTrigger.sh
is the Bamboo shell script to trigger the build.is how CVS tells the postCommitBuildTrigger.sh
script which directory it is committing.
is the URL of the Bamboo server.
MOO-KEY
the key of the Bamboo plan to be executed.Commit the changes you made to the CVSROOT/commitinfo
and CVSROOT/loginfo
files in step 2 and 3, respectively, back to the repository.
cvs -d cvsroot-to-your-repository commit
where:
cvsroot-to-your-repository
is the root directory pathname of the CVS repository.-d cvsroot-to-your-repository
overrides the any $CVSROOT
environment variable setting.Conduct a 'test' commit. Bamboo should start building the relevant plan after a few seconds.
The Bamboo log file should contain an entry like this:
[INFO] com.atlassian.bamboo.build.UpdateAndBuild - Bamboo build was triggered by remote http call from 127.0.0.1
postCommitBuildTrigger.sh
is only triggered when the last file of the commit has been committed.preCommit.sh
and postCommitBuildTrigger.sh
must have sufficient privileges to be executed by the CVS user.preCommit.sh
and postCommitBuildTrigger.sh
files to the CVSROOT directory and add the names of these files to the end of the checkoutlist
file.Build Trigger Security — Bamboo will only accept remote build triggers if the triggers originated from the CVS server(s) identified in the CVS root paths of any Bamboo plans. Requests originating from other CVS servers will be rejected by Bamboo.