Skip navigation.

Reference Doc

IvyCruise is a set of plugins for CruiseControl.

You will find below the documentation reference of the different plugins.
If your are looking for the CruiseControl documentation reference, just go there.
If you want to see an example of how to use them, just follow this tutorial.

Prerequesites

The IvyCruise plugins set requires two particular configurations :
  • ivy.jar and ivycruise.jar in the CruiseControl classpath. (see it here)
  • a multithreaded CruiseControl server configuration (can run without but in a degraded but functionnal mode).

<ivybuilder>

IvyBuilder is the plugin used to retrieve and order projects build according to the dependencies they have to each other.

Attributes

Attribute Required Description
ivyfilepattern No Pattern to access to other projects'ivy file.You can use the variable ${project} that matches each declared project into CruiseControl config file.
Example:
    ivyfilepattern="projects/${project}/ivy.xml
where ${project} is a CruiseControl project name.
Note: with cc 2.3, using ${project} causes cc to fail, because project is not a defined property. A hack to use ivycruise with cc 2.3 is available here. With this version, you can use [project] instead of ${project}

Child Elements

Element Cardinality Description
<pattern> 0..* Defines some pattern child elements to retrieve other projects.
<project> 0..* Give the complete description of a project to use : name and ivyfile.

<pattern>

You can define as many pattern elements as you want to point to projects that could be into different directories. You can use the variable ${project} that matches each declared project into CruiseControl config file.
Note: with cc 2.3, using ${project} causes cc to fail, because project is not a defined property. A hack to use ivycruise with cc 2.3 is available here. With this version, you can use [project] instead of ${project}

Attributes

Attribute Required Description
value Yes pattern to access to other projects'ivy file.
Example:
    ivyfilepattern="projects/${project}/ivy.xml
where ${project} is a CruiseControl project name.
Example :
<ivybuilder>
  
<pattern value="projects/apps/${project}/ivy.xml" />
  
<pattern value="projects/components/${project}/ivy.xml" />
  
<pattern value="projects/tools/${project}/ivy.xml" />
  
<pattern value="projects/misc/${project}/ivy.xml" />
</ivybuilder>

<project>

You can define as many project elements as you want to point directly to other projects. The project element is less flexible than the pattern as it points only to a specific project.

Attributes

Attribute Required Description
name Yes CruiseControl name of the project
ivyfile Yes path to project ivy file
Example :
<ivybuilder>
  
<project name="A" ivyfile="checkout/A/ivy.xml" />
  
<project name="B" ivyfile="checkout/B/ivy.xml" />
  
<project name="C" ivyfile="checkout/C/ivy.xml" />
</ivybuilder>

<ivybuildstatus>

This task goal is to tell if the project must be rebuild or not regarding of the dependencies it owns, ie the project will be built if one of its dependencies has changed.

Attributes

Attribute Required Description
ivyfile Yes the path to the ivy file of the project.

<ivyconditional>

The ivyconditional task is a meta publisher.
It publishes the result using the sub publishers only if build has failed or if real modifications occured, not only dependency ones (to use in conjunction with IvyBuildStatus or BuildStatus). This publisher is usually used with email publishers, to prevent spam when only dependency has changed.
Example:
<publishers> 
  
<ivyconditional>
    
<email mailhost="127.0.0.1" buildresultsurl="http://127.0.0.1:8080/cruisecontrol/buildresults/myproject/" returnaddress="someone@mysite.com">
    
</email>
  
</ivyconditional>
</publishers>

Child Elements

Element Cardinality Description
<antpublisher> 0 .. * Executes an Ant script which implements a custom publisher.
<artifactspublisher> 0 .. * Copies build products to a directory
<currentbuildstatuspublisher> 0 .. * Writes the time of the next build to a file
<email> 0 .. * Sends an email with a URL to the build results JSP
<execute> 0 .. * Execute a command as part of the publishing phase
<ftppublisher> 0 .. * Copies the log file and build artifacts to an FTP server
<htmlemail> 0 .. * Sends an email with the build results embedded as HTML
<jabber> 0 .. * Sends an instant message with a link to the build results via a Jabber server using XMPP
<sametimeannouncement> 0 .. * Sends Sametime announcements with the result of the build
<scp> 0 .. * Copies a file using SCP
<x10> 0 .. * Controls an x10 electronic device
<xsltlogpublisher> 0 .. * Performs a transformation of the log file

RMI configuration

If you're not using the default rmi port (1099), be sure to indicate so in your plugin declaration like so:

<plugin name="ivybuilder" classname="fr.jayasoft.ivy.cruise.IvyBuilder"
          rmiPort="4999"/>

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.