Installing Continuum

After you have downloaded and unpacked the bundle execute bin/linux/run.sh if you are on a UNIX platform or bin/win32/run.bat if you are using Windows or bin/macosx/run.sh if you are using MacOS X.

When Continuum is running you can access it with your browser on http://localhost:8080/continuum/ or by using the XMLRPC interface on port 8000.

Adding Projects to Continuum

Adding Maven 2 Projects

When adding a Maven 2 project all you need is the URL to a POM. The POM has to include at least the SCM information to be able to check out the project.

If there is a <modules> element inside the POM continuum will try to download the child projects by adding the module name to the end of the url. This makes it very easy to add a entire project to Continuum if you list all the child projects insode the POM.

If you are using ViewCVS you can add your project with a url like this:

http://svn.codehaus.org/*checkout*/trunk/pom.xml?root=plexus

NOTE: When adding projects from ViewCVS (and possibly other equivalent systems) make sure you remove the part of the url specifying the revision of the POM to get. If you don't do this you might not get the latest POM old data.

Configuring Maven 2 Projects

When adding Maven 2 projects Continuum will read the data in the POM and store it. It will store:

  • The SCM information
  • The developers
  • The notifiers

The notifiers is configured inside the <ciManagement> section of the POM like this:

<ciManagement>
  <system>continuum</system>
  <notifiers>
    <notifier>
      ...
    </notifier>
  </notifiers>
</ciManagement>

Example mail notifier configuration:

<notifier>
  <type>mail</type>
  <configuration>
    <address>dev@maven.apache.org</address>
  </configuration>
<notifier>

Example IRC notifier configuration:

<notifier>
  <type>irc</type>
  <configuration>
    <host>irc.codehaus.org</host>
    <port>6667</port>
    <channel>#maven</channel>
  </configuration>
</notifier>   

Note: The IRC notifier will not join the channel so the channel can't have mode +n. To make sure that the channel doesn't have mode +n set write this in a IRC client: /mode -n

Adding Maven 1 Projects

Adding a Maven 1 it pretty much like adding a Maven 2 project, pass it an URL to a POM with SCM information and Continuum will add the projects.

There are is a caveat though: The POM cannot extend a parent POM. When Continuum is downloading the POM it won't know how to find the parent POMs. The best way to use Continuum with Maven 1 projects is to give Continuum the root POM of your projects only and then have a special goal in the root projects maven.xml to build all of the projects. In subsequent versions of Continuum we will deal with Maven 1.x projects in a cleaner way.

Adding Ant Projects

When adding Ant projects you have to specify the project's name, SCM URL, version and the targets to execute.

NOTE: The SCM URL is a Maven SCM URL. Here's an example of what an SCM URL looks like: scm:svn:http://svn.apache.org/repos/asf/maven/continuum/trunk

Adding Shell Projects

When adding shell projects you have to specify the project's name, SCM URL, version and the shell script to execute. The working directory of the project will be prepended to the scripts path.

NOTE: The SCM URL is a Maven SCM URL. Here's an example of what an SCM URL looks like: scm:svn:http://svn.apache.org/repos/asf/maven/continuum/trunk

Building Projects

Using the Web Interface

To build a project with the web interface from the project list, simply press the "build" button and the project will be enqueued on the build list. If Continuum isn't already building a project it will start the build immediately.

Using the XML-RPC Interface

By using the continuum_cli.py Python script you can remotely control Continuum. Start the script by executing python continuum_cli.py and write help to list all available commands.

There is also a reusable Python library called continuum.py that can be used to integrate remote control over Continuum into other Python applications.