JaVa
   

CruiseControl Life Cycle

Upon starting, CruiseControl goes through the configured projects and loads in the saved state information for each project (if any). It then determines when the next build for each project will occur, and enters a wait cycle. Whenever a project is scheduled to be built (as determined by the information in the <schedule> element), the project is placed into a build queue. A separate thread of execution monitors the build queue, and is responsible for actually building the projects. Once the project is built, the next build is scheduled; if it would have occurred in the past, the project goes straight back into the build queue (at the end). Although CruiseControl supports only one thread accessing the build queue at the moment, future versions are planned to have a configurable number of build threads. When the build thread starts building a project, the first step taken is to "bootstrap" the project, by invoking the bootstrappers associated with the project. After that is complete, the project looks for modifications, using the source control components. Assuming that modifications are found, the project is built by invoking the builders (with the label being calculated either before or after the build attempt).

After the project is built, the log is created. The project state is then saved to disk (where it will be used to recover the project if the CruiseControl service is restarted), and finally the project results are published. The project then goes back into the idle mode, until the next scheduled build.


JaVa
   
Comments