This is actually due to an issue in CruiseControl; not CCTray itself.
If source control fails (say because of a timeout or connection failure) the following will be true:
- CruiseControl will set project state to
Exception
as the project is currently in an error state
- CruiseControl will NOT modify the last build status, as a build has not occurred
- so if the previous build succeeded - the project will report
Success
for the last build status
CruiseControl only reports - natively - the last build status via the API that CCTray uses. Getting it to inspect the project status is more complicated and ends up being less efficient. As such the CCTray reports the 'status' as the last build status rather than a hybrid of the two.
The WebDashboard shows the project status and the last build status hence true status of the project is better evaluated.
This issue has several other side-effects; such as projectTrigger
s firing in this circumstance; as these also do not check the project status.
Ideally CCTray - and projectTrigger
s, et. al - would check both the project status and last build status and report the outcome as a combination of both.