Installing and Configuring a Build Agent

Installing a build agent follows a very similar process to the Continuum master installation.

First, download the Continuum Build Agent standalone distribution or web application.

Note: It is recommended to use Build Agents that come with the release of Continuum (Continuum Master) to be used. While 1.3.x Build Agents can be used with 1.4.x Continuum (Continuum Master), using a later version of Build Agent than the Continuum (Continuum Master) will not work.

Standalone

The Build Agent is available as a separate standalone Jetty-bundled application. Installing it is as simple as extracting it to a preferred directory.

The Build Agent runs on a specific port (defaulting to 8181), so it is possible to install multiple Build Agents in one machine. It is also possible to install Build Agents in the same machine as the Master. To configure the Build Agent to run using a different port, edit the $CONTINUUM_BUILDAGENT_HOME/conf/jetty.xml file.

Another configuration file to look at is the $CONTINUUM_BUILDAGENT_HOME/conf/continuum-buildagent.xml. This file must be manually edited, as there is no web interface for this configuration.

<continuum-buildagent-configuration>
  <buildOutputDirectory>/path/to/build/agent/data/build-output-directory</buildOutputDirectory>
  <workingDirectory>/path/to/build/agent/data/working-directory</workingDirectory>
  <continuumServerUrl>http://builds.example.com:8080/continuum/master-xmlrpc</continuumServerUrl>
  <installations>
    <installation>
      <name>Maven Home</name>
      <type>maven2</type>
      <varValue>/Applications/apache-maven-2.0.9</varValue>
    </installation>
  </installations>
  <localRepositories>
    <localRepository>
      <name>default</name>
      <location>/home/user/.m2/repository</location>
      <layout>default</layout>
    </localRepository>
  </localRepositories>
  <sharedSecretPassword>PSK</sharedSecretPassword>
</continuum-buildagent-configuration>

The configuration will have the following fields:

  • continuumServerUrl - the URL pointing to the XML-RPC context of the Continuum Master
  • sharedSecretPassword - the pre-shared key (PSK) between master and agent. Copy the PSK that was configured in the Continuum Master configuration file continuum.xml (or corresponding web interface field).
  • buildOutputDirectory - similar to the build output directory of Continuum.
  • workingDirectory - similar to the working directory of Continuum
  • installations - an optional list of the installations available on the Build Agent, including Maven, Ant, JDK, etc.
  • localRepositories - an optional list of the local repositories that will be used by the build agent when building and releasing projects. The local repository name must match that of the local repository configured in the Continuum Master. This configuration is only available in Continuum 1.4.0+.

Note that all of your agents need not be identical, as there is a way to control which agent Continuum chooses by using a Build Agent Group. In addition, you need to configure the Build Environment from the Master in order to specify which installation to use for the build.

Now start the Build Agent by executing the startup script available in $CONTINUUM_BUILDAGENT_HOME/bin/. For example:

continuum-buildagent start

or if you are on Windows

continuum-buildagent.bat console

Next, add the agent to the Continuum Master server.

Note that agent will be automatically disabled if the PSK is not configured properly or if the agent is unreachable by the Continuum Master.

To conclude the installation, you should set it up as a service, following the same instructions as those shown for Continuum for Windows or Linux.

Web Application

The Build Agent is also available as a web application which you can install into your own container. Unlike Continuum itself, you do not need to configure Mail and Databases, so the deployment is much simpler.

The Build Agent needs the following in order to function properly:

  1. a appserver.base system property
  2. a continuum-buildagent.xml configuration file in ${appserver.base}/conf
  3. a working area with logs and temp directories

Set the system property using the recommended method for your application server. An example for Tomcat is shown in the same instructions as those shown for Continuum.

Next, create the continuum-buildagent.xml file as shown in the Standalone section above, and save it in ${appserver.base}/conf. You will need to create these directories, as well as ${appserver.base}/logs and ${appserver.base}/temp.

Finally, drop the web application into your container, and start it.

Installing with Puppet

As with Continuum, if you use Puppet to manage your infrastructure, and wish to install the standalone build agent, you can use a third-party Puppet module.