CCTray.xml is an RSS-like CI server build status xml feed, which is originally developed for CruiseControl.net.
ThoughtWorks declared it in a standard called “Multiple Project Summary Reporting Standard”, which now have become some kind of unofficial standard of CI server feed that is widely supported by all kind of popular CI servers.
You can find the feed as described below:
- GO - http://servername:8154/go/cctray.xml
- CruiseControl.rb - http://cc.rb.servername:3333/XmlStatusReport.aspx
- CruiseControl - http://cc.java.servername:8080/cctray.xml
- CruiseControl.NET - http://cc.net.servername/XmlStatusReport.aspx
- Jenkins - http://jenkins.servername:8080/cc.xml
- Hudson - http://hudson.servername:8080/cc.xml
- Travis CI - http://travis-ci.org/ownername/repositoryname/cc.xml
- tddium - - http://api.tddium.com/cc/long_uuid_string/cctray.xml
And according to cc_dashboard, there are some exceptions that are not included in the document.
- An additional “Pending” activity
- An additional “Unknown” status. I’ve seen Unknown reported by CruiseControl.rb when project builds are serialized (“Configuration.serialize_builds = true” set in .cruise/site_config.rb) and one build is waiting for another build to finish. I’ve seen Unknown reported by Hudson when a project is disabled.
The following is a patched version of Multiple Project Summary Reporting Standard.
Various Continuous Integration monitoring / reporting tools exist. Examples are:
These tools work by polling Continuous Integration servers for summary information and presenting it appropriately to users.
If a Continuous Integration server can offer a standard summary format, and a reporting tool can consume the same, then we get interoperability between reporting tools and CI Servers.
Summary information will be available as a plain XML string retrievable through an http GET request.
The format of the XML will be as follows:
|name||The name of the project||string||yes|
|activity||The current state of the project|| string enum : Sleeping, Building, CheckingModifications ||yes|
|lastBuildStatus||A brief description of the last build||string enum : Pending, Success, Failure, Exception, Unknown||yes|
|lastBuildLabel||A referential name for the last build||string||no|
|lastBuildTime||When the last build occurred||DateTime||yes|
|nextBuildTime||When the next build is scheduled to occur (or when the next check to see whether a build should be performed is scheduled to occur)||DateTime||no|
|webUrl||A URL for where more detail can be found about this project||string (URL)||yes|
Clients that consume this XML should not rely on any optional attribute being present, and should degrade their functionality gracefully.