Cruise Control
CruiseControl is a framework for a continuous build process. It includes, but is not limited to, plugins for email notification, Ant, and various source control tools. A web interface is provided to view the details of the current and previous builds.
CruiseControl is not limited to the Java world, but can be used also with .net and other 3-party software.
Cruise Control is often used to implement integration with eXtreme Feedback Devices (XFDs).
Overview
CruiseControl is composed of 2 main modules:
- Build loop
Core of the system, it triggers build cycles then notifies various listeners (users) using various publishing techniques. The trigger can be internal (scheduled or upon changes in a SCM) or external.
It is configured in a xml file which maps the build cycles to certain tasks, thanks to a system of plugins. Depending on configuration, it may produce build artifacts. - Reporting
Allows the users to browse the results of the builds and access the artifacts
Quick Start
Cruise Control is started by executing the cruisecontrol.bat (windows) or cruisecontrol.sh (Unix). To alter the behaviour of Cruise Control use the following command line options:
Standard Command Line
Flag | Required | Description |
---|---|---|
-configfile filename | No | Relative path to CruiseControl config file. Defaults to "config.xml". |
-debug | No | Changes the logging level of the internal log4j Logger to DEBUG. Please note that this will NOT cause your ant scripts to run as if using 'ant -debug', you need to specify that in your config.xml file. |
-help -? |
No | Print the command line usage information. |
Jetty Options
Flag | Required | Description |
---|---|---|
-webport port | No | Port number for Jetty. Defaults to 8080, which means that you can access the Reporting Application at http://localhost:8080. |
-cchome directory | No | The directory in which to execute CruiseControl. Defaults to the current directory, i.e. ".". |
-ccname name | No | A logical name to associate with this instance of CruiseControl. The name will be displayed in the Reporting Application's status page. |
Flag | Required | Description |
---|---|---|
-jmxport [port number] | No | Port number for the JMX HTTP adapter. This will activate the JMX admin functionality of CruiseControl. If no number is specified, this will default to 8000, which means you can access the site at http://localhost:8000. When using the Binary Distribution (or the CruiseControlWithJetty start class) the Reporting for the ControlPanel JSP tab. |
-rmiport [port number] | No | Port number for the JMX RMI adapter and Connector Server. This will activate the JMX admin functionality of CruiseControl. If no number is specified, this will default to 1099, which is the default RMI port. If no RMI registry is running on the specified port, a registry will be started for you. See the documentation for more information. |
-xslpath directory | No | The location of your custom XSLT files for use with the JMX HTTP adapter. Normally, you don't need to specify this and CruiseControl will use the style sheets that come with the distribution. This can be used to specify a directory containing your own customized versions of this stylesheets. |
-user user id | No | Sets a user for the JMX HTTP Adapter. This will require users to login with this user (and password see below) to use the JMX Web interface. The -password flag must also be set. |
-password password | No | Sets a password for the JMX HTTP Adapter. This will require users to login to use the JMX Web interface.The -user flag must also be set. |
Links
- Cruise Control Wiki
- Cruise Control, Official Home page.
- Javaranch How To example of creating a Nightly Build