CruiseControl
Encyclopedia
In software development
, CruiseControl is a Java-based 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. It allows one to perform a continuous integration
of any software development process.
CruiseControl is free
, open-source software
, distributed under a BSD-style license. It was originally created by employees of ThoughtWorks
to allow for continuous integration
on a project they were working on. It was later extracted into a stand-alone application.
There is a version of CruiseControl for .NET
called CruiseControl.NET (aka CCNet) and a version for Ruby called CruiseControl.rb
(see links below). On May 15, 2007, ThoughtWorks Studios announced the provision of CruiseControl services and support, under the banner CruiseControl Enterprise. Since then they have changed the project and instead released a commercial offering called Cruise, subsequently rebranded as Go (see links below).
process, which periodically checks the revision control system
for changes to the codebase
, builds if necessary, and publishes a notice regarding the status of the software build.
report managed by a JSP
page. The left side of the page tells us about whether CruiseControl is currently building your project, and provides links to the details of previous builds. The right side of the page presents the results of the build—including compilation errors, test results and details about what files have changed since the last build.
The 'Builds' tab of the dashboard shows all projects (colour-coded) sorted by name providing some more information.
Software development
Software development is the development of a software product...
, CruiseControl is a Java-based framework for a continuous build
Software build
In the field of computer software, the term software build refers either to the process of converting source code files into standalone software artifact that can be run on a computer, or the result of doing so...
process. It includes, but is not limited to, plugins for email notification, Ant
Apache Ant
Apache Ant is a software tool for automating software build processes. It is similar to Make but is implemented using the Java language, requires the Java platform, and is best suited to building Java projects....
, and various source control tools. A web interface is provided to view the details of the current and previous builds. It allows one to perform a continuous integration
Continuous integration
In software engineering, continuous integration implements continuous processes of applying quality control — small pieces of effort, applied frequently...
of any software development process.
CruiseControl is free
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...
, open-source software
Open-source software
Open-source software is computer software that is available in source code form: the source code and certain other rights normally reserved for copyright holders are provided under a software license that permits users to study, change, improve and at times also to distribute the software.Open...
, distributed under a BSD-style license. It was originally created by employees of ThoughtWorks
ThoughtWorks
ThoughtWorks is a privately owned global IT consultancy that delivers custom software, software tools, consulting, and transformation services to Global 1000 companies. It has a products division, ThoughtWorks Studios, which creates and markets software development and project management applications...
to allow for continuous integration
Continuous integration
In software engineering, continuous integration implements continuous processes of applying quality control — small pieces of effort, applied frequently...
on a project they were working on. It was later extracted into a stand-alone application.
There is a version of CruiseControl for .NET
.NET Framework
The .NET Framework is a software framework that runs primarily on Microsoft Windows. It includes a large library and supports several programming languages which allows language interoperability...
called CruiseControl.NET (aka CCNet) and a version for Ruby called CruiseControl.rb
CruiseControl.rb
In software development, CruiseControl.rb is a Ruby-based framework for a continuous build process. It allows one to perform a continuous integration of a codebase in any language and on any platform....
(see links below). On May 15, 2007, ThoughtWorks Studios announced the provision of CruiseControl services and support, under the banner CruiseControl Enterprise. Since then they have changed the project and instead released a commercial offering called Cruise, subsequently rebranded as Go (see links below).
Build loop
The build loop is designed to run as a daemonDaemon (computer software)
In Unix and other multitasking computer operating systems, a daemon is a computer program that runs as a background process, rather than being under the direct control of an interactive user...
process, which periodically checks the revision control system
Revision Control System
The Revision Control System is a software implementation of revision control that automates the storing, retrieval, logging, identification, and merging of revisions. RCS is useful for text that is revised frequently, for example programs, documentation, procedural graphics, papers, and form...
for changes to the codebase
Codebase
The term codebase, or code base, is used in software development to mean the whole collection of source code used to build a particular application or component. Typically, the codebase includes only human-written source code files, and not, e.g., source code files generated by other tools or...
, builds if necessary, and publishes a notice regarding the status of the software build.
Build reporting
CruiseControl provides two ways of reporting build status. The first (classic) reporting is the reporting JSP and the second is the dashboard.Results JSP
The build reporting is designed to present the results of the CruiseControl build loop. It's based on a HTMLHTML
HyperText Markup Language is the predominant markup language for web pages. HTML elements are the basic building-blocks of webpages....
report managed by a JSP
JavaServer Pages
JavaServer Pages is a Java technology that helps software developers serve dynamically generated web pages based on HTML, XML, or other document types...
page. The left side of the page tells us about whether CruiseControl is currently building your project, and provides links to the details of previous builds. The right side of the page presents the results of the build—including compilation errors, test results and details about what files have changed since the last build.
Dashboard
The dashboard was introduced in the 2.7 release. The dashboard is a web page to enable visualising the project build statuses. Previous project build results are colour-coded so that one can get a snapshot of how the projects are doing at that moment. Users can mouse-hover over icons to see the name and information about the project.The 'Builds' tab of the dashboard shows all projects (colour-coded) sorted by name providing some more information.
See also
- Continuous integration software
- HudsonHudson (software)Hudson is a continuous integration tool written in Java, which runs in a servlet container, such as Apache Tomcat or the GlassFish application server. It supports SCM tools including CVS, Subversion, Git and Clearcase and can execute Apache Ant and Apache Maven based projects, as well as arbitrary...
- TeamCityTeamCityTeamCity is a Java-based build management and continuous integration server from JetBrains, creators of IntelliJ IDEA and ReSharper.It was first released on October 2, 2006.-Notable Features:...
External links
- Official CruiseControl homepage
- Continuous Integration by Martin FowlerMartin Fowler-Online presentations:* at RailsConf 2006* at JAOO 2006* at QCon London 2007 * at QCon London 2008 * at ThoughtWorks Quarterly Technology Briefing, October 2008...
and Matthew Foemmel - Go, a commercial alternative to CruiseControl developed by ThoughtWorks and formerly called Cruise. Continuous Integration and Release Management system.
- Introduction to CruiseControl (slide show)
- CruiseControl for .NET
- CruiseControl for Ruby
- Integrating Lava Lamps to CruiseControl by Pak-Tjun Chin
- Big Visible Cruise Web Build Monitor