How do you make your build moo?
Boris pointed me to bug 216670 which asks the question, “why would you use images in a wiki to communicate build status?”
I agree, it seems an odd approach, what with the world (well, my world, anyway) hell-bent on searchable & simple text-based messaging. (I say this because increasingly my other half uses her thumbs instead of her voice to communicate on her phone, and I’ve become rather hooked on IM, IRC, and Twitter. And there’s the explosion of Google as the defacto search tool. And Facebook. And feed readers. And iGoogle. And Flock.)
Anywhey, here’s a run-down of a few ways that Modeling Builds communicate with the outside world.
Text-based notification mechanisms we use include:
- RSS feed. With this ‘opt-in’ model, interested people can, if they want, subscribe to updates (as I do in my blogs’ sidebars).
In addition, the RSS feed data can be digested into a database, which can then be queried to generate web content (as on the EMF/EMFT/MDT/M2T sites). Of course that probably sounds like overkill when you can just embed a feed reader or parse the XML into PHP some other way… but having the mysql backend allows for lots more fun & games (like release notes generation and per-build bug list querying).
- Email. Send your updates to your *-dev@eclipse.org mailing list, and people can, if they want, subscribe to updates (as I do with the platform-releng-dev@eclipse.org list, which posts ‘new build available’ notices).
I then Gmail-filter these into a Label so that I only need see them when I’m looking for something specific. (I don’t use this for the component builds I run as no one’s yet asked for it. However, I believe GMF has their CruiseControl-based build system set to notifiy their mailing list of build status.) So it’s not unheard of in Modeling-land.
Generating mail (to specific people or to a mailing list) is easy. The approach I’ve taken is to use a shell script wrapper (search for “sendEmail”) to a php script which just uses sendmail or smtp to relay mail.
This tool is used to send notices when builds are done or promoted, or if tests have failed. How do I determine if a build has failed? That’s pretty complex, but in a nutshell, the pages you’ve seen for downloading builds are also used to visually inspect builds for status. If a test fails, the normally green “Sucess” label & check mark change into a different status descriptor and icon.
Recently, I hacked the display logic out of the downloads page and now use that to inspect build folders (search for “checkBuildStatus”) for status. If anything goes wrong, an email is sent to the contact address on file when the build or promote script is done.
- Newsgroup announcements. Every time one of our components publishes a new build, a quick note is automatically generated & sent to the appropriate news group.
Sure, we could use a mailing list for this, but the Modeling Way has been for years to keep public discussions and annoucements in the newsgroup, and keep the mailing lists for (rare) developer-to-developer communiqués.
Generating nntp messages is easy… I use a shell script (search for “send newsgroup notification”) to feed a text file (the message contents) to netcat (aka “nc”).
So, how do you make *your* build moo?
Posted January 26th, 2008 by in category: build, mailinglist, newsgroup, rss, workflow
You can skip to the end and leave a response. Pinging is currently not allowed.
Leave a Reply
You must be logged in using your Eclipse Bugzilla account to post a comment.

