Tuesday, May 4, 2010

Web based build bots don't work for me

For MonoDevelop we want a stable trunk - many people use the trunk version of MonoDevelop for their daily work.
Unfortunately I tend to break the trunk from time to time (I think every developer does). Sometimes I just break some unit tests.

Therfore we set up a web based build bot for monodevelop:

This automates the build process & unit testing. In theory this will help all developers to stabilize the trunk.

But my experience said: WRONG

Before we had a build bot a build failure was recognized mostly by Lluis Sanchez (thanks lluis) or some users who informed me in IRC that there is something not working.

Now with the bild bot build failures are recognized mostly by Lluis Sanchez (thanks again) or some users who try to build monodevelop trunk and infom me on IRC that something isn't working.

How can this happen now that we've a build bot ?

-> I have to go to that page and check if I broke something.

This isn't really an improvement ... I have always to manually check, if I broke something.
I always wanted that the build bot send me an e-mail in case of build failure.
... but I think I would've missed that mail as well).

Then I had the idea:

Just write a little monodevelop addin which informs me, if the build bot found something. This way:
  • I would get informed without doing manual checks (-> saves time)
  • I wouldn't svn up a non working version (-> saves more time)
  • Maybe I would be more careful with check ins, if the build bot guard has some form of punishment when I break something (-> may save time for our user)
With this in mind I just wrote a small addin for us monodevelop authors (and maybe other MonkeyWrench users) I call 'Build bot Guard'.


It just displays a little icon in the monodevelop status bar (I like it simple).

If the build is ok it looks like:


When there is something not ok the monkey becomes sad:


Is somebody out there that wants to make the monkey sad ? I doubt that. This is really simple ... just an icon at the bottom.

But I need some more detailed info about the build bot results.
Therefore I added a inform window on the icon click:

So far so good.

But I want to get informed if I broke the build.
(And I don't think that the small icon in the lower right corner informs me well about this)

For doing this the addin needs to know my svn user name - I added a small option panel. (There it's possible to set other MonkeyWrench projects by URL as well.) And if the user broke something a dialog appears:

I really hope that this is enough that I'll fix the trunk ASAP. If I've some more time & there is interrest I'll improve the addin. Maybe even make it more flexible so that it'll be possible to add other web based build bots to it.

Currently the addin has a down side: It can just track ONE project. We need something like user specific project policies. Maybe it's easer that the addin just tracks the solutions by itself. But that's something for future development.

Do you think too that build bots belong INSIDE the IDE ?

7 comments:

dave said...

We have the same problem with the development lines in our companies projects, we used to help us by sending an email to notify broken builds, but this isn't always the best approach because its too less progressive. I really like your idea by showing the broken build dialog in md and I'm definitely gonna try it out ... I also think that it would be worth improving the module to support different build systems and vcs. Keep up your great work.

Anonymous said...
This comment has been removed by a blog administrator.
Alan said...

This is pretty awesome. How hard would it be to pull out the actual backend code and make a little daemon out of it which could be run outside of the IDE? Some people are emacs users through and through and it'd be awesome if they could use this too. No more accidentally broken moonlight builds for any of us! :)

Mike Krüger said...

@Alan: No the people who want this must use MonoDevelop!

... just another reason not to use emacs :)

scott said...

TeamCity has a lot of great build notifiers to help with this problem including a gTalk notifier.

e-Definers Technology said...
This comment has been removed by the author.
Anonymous said...

really it is a nice commands... thanks for sharing with us... <a href='http://www.websitedevelopmentcompany.com.au/" rel="nofollow">Web Development Company</a>