Loren Halvorson's Blog

If your only tool is a hammer...

Another Ambient Orb used for continuous integration status

Thanks to David Weller for pointing out an article on Mike Swanson's blog about how he uses the Ambient Orb to indicate continuous integration build status. This is identical to the way we have it set up.

As an alternative to paying for the custom channel, and to avoid the 10-15 minute delays it takes to update the orb, we have ordered the Hardware Developer Module (thanks Rajesh) so we can just plug the orb directly into a machine's serial port. It hasn't arrived yet though.

Recently the ambient server has been rejecting our requests, we get the following error message:

Unable to download 'https://myambient.com/java/my_devices/submitdata.jsp?devID=XXX-XXX-XXX&color=12&anim=0&comment=Product x.x+build+succeeded' to 'out.html'. The underlying connection was closed: Could not establish trust relationship with remote server.

Hopefully we can figure out what's causing this and fix it soon.

Here's a little more about our build process. When our CruiseControl.NET server kicks off a build it does the following:

  1. Build using NAnt*
  2. Get files from SourceSafe using NAntContrib
  3. Unit test using NUnit
  4. Coverage analysis of unit tests using NCover*
  5. Generate MSDN style documentation using NDoc
  6. Generate a missing documentation tag report (homegrown script that reports the <missing> tags in the NDoc documentation)*
  7. Perform static analysis using FxCop
  8. Create Windows Installers using WiX
  9. Generate build manifest report (homegrown script that lists all files and version numbers that are included in the distribution)*
  10. Finally it indicates to the Orb whether all of the above succeeded or not.

* We have extended CruiseControl.NET's web to include pretty reports for these items.

Things are settling in now so we can get new projects set up to build this way in very little time. Having experienced the benefits of continuous integration, I don't think I'd want to work on a project that didn't have a continuous integration build process.

Comments

No Comments