Welcome to Manicprogrammer Sign in | Join | Help

CI All Around

My good friend, Claudio Figueiredo, reminded me that I shouldn't choose a tool that's so important to us without trying a few of them (god damn you for giving me more work, though, lol).

So I decided on trying JetBrains TeamCity, as JetBrains has been a sponsor of Stormwind Project since the very beginning.

Introduction

First of all, I liked the tool very much. It's very easy to configure, it's intuitive and I got my pipeline of builds very quickly.

Hmmm... I see a catch coming...

You are right, my insightful friend. There is a catch. I hit the same wall as in Bamboo (I'll explain more about Bamboo later). After setting the basics up, I decided on getting the extended stuff going, like: NDepend, NCover, Simian, NUnit and stuff like that (even our own custom made plugin). Guess what? No can do!

I could set up NUnit, but I had to use the NUnit Runner that JetBrains built. Don't get me wrong, JetBrains RULE! They build software that I don't imagine to build in the next 10 years. The problem here is that I don't want to use THEIR version of NUnit (currently they have 2.4.6 or something). I want to use my version of it. Yes, we are using 2.5.0 Beta. And it is awesome.

Assumptions

When you are building a tool that's as important as a Continuous Integration Engine you NEED to make sure that it's as extensible as it gets. CCNet is still the tool of choice for me in that area. Within minutes I get a new report up and running, provided that the plug-in generates xml and I have a stylesheet for that XML. Come on, how cool is that?!

The problem here is the assumptions that if people are adopting your amazing CI Engine (and don't get me wrong, they are both AMAZING!!!), they won't need anything else. You and I both know that's not the case.

Build servers are very peculiar beasts. Each company have their own needs and customizations. Even project-level customizations. If you make assumptions on the way people are going to use the tool, then you will have issues with that.

My Dream CI Tool

Instead of just whining I'll just give you a few characteristics of what would be my dream CI tool (and it's probably coming soon anyway):

  1. Easy to use and create new projects
  2. Allow me to have pipelines (builds that are kicked when others succeed)
  3. Allow me to extend it using Xml/Xsl (or a similar way that I can interact with it without having to resort to coding plug-ins)
  4. Allow me to write plug-ins
  5. Allow me to keep artifacts
  6. Allow me to customize my dashboard (So, in an open source projects show the logo and successful builds so the users can download both source and binaries)
  7. Have a consistent notifying mechanism, like CCTray.
  8. Allow comments and taking responsibility for a broken build.
  9. Allows anon access as well as auth access.
  10. Have a set of reports on things like succesful builds, failed builds, time to complete build, builds that it took to fix things, and stuff like that.

I know that's asking for a lot, but the tools out there are almost here. They are very close. My problem is that each of the tools fails in some respect.

Bamboo and some issues

Bamboo has the problem of not supporting NCover, NDepend and company. That is an issue for me, because I like those tools a lot.

They give invaluable insight, and I'm not ready to drop them in the first problem that comes my way.

Right now I've decided on building a plug-in for Bamboo that will allow me to just get an artifact (xml) and apply an XSL to it and render it as a build result or something like that.

How hard can it be, right? (Famous Last Words)

Call for Help

I know that you very smart guys out there can help me out here. I am a newbie in Java, and all plug-ins for Bamboo have to be written in Java. Thus I need someone to help me in creating this thing.

You'll be fully compensated by taking this responsibility. You'll have the amazing compensation of knowing you have helped a lot of people out there that use the product and have similar needs. Also we'll donate one kilo of pasta for Swedish ducks for everyone that applies (no we wont, just kidding lol).

So if you feel like doing some cool coding, just give me a heads up and we can work together to get this working!

Conclusion

Out of all my options, I'm staying with Bamboo right now. It seems to be the most configurable one so far. I hope things will clear up in the next days.

#152

Published Monday, May 19, 2008 10:27 PM by heynemann
Filed under , , , ,

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

# re: CI All Around

Tuesday, May 20, 2008 10:13 AM by Kevin McDonnell

Obviously with TeamCity you can just call the command line NUnit to get what you want so it's not the end of the world. Agree it's not quite as smooth as CC in the integration sense but it makes life so much easier where it is fully integrated though. Pretty too.....can't believe I just said that.

# re: CI All Around

Tuesday, May 20, 2008 10:26 AM by heynemann

Hi Kevin,

Yeah it's not the end of the world. I got all my builds working with TeamCity.

The main issue I have here is that I want visibility from my CI Server. I don't want to have to look in log files to check things like Coverage or Dependency analysis. I want the build dashboard to show that for me (much the same way CCNet does it).

TeamCity is a REALLY cool solution. The Remote build part is sweet! I just wish they had an easier way to integrate other tools, other than writing a Java Plugin anyway (my java is crap).

I hope someone comes around and calls me stupid, because there is a ridiculously easy way to integrate it with NUnit 2.5, NCover and NDepend.

Thanks again for your comments,

Cheers

Bernardo Heynemann

# re: CI All Around

Tuesday, June 10, 2008 2:05 AM by Ross Rowe

Hi Bernardo,

I've been developing the NAnt plugin for Bamboo, and it's pretty much morphed into a catch-all for various .Net build artifacts (eg. NUnit/MBUnit/MSBuild/Devenv/etc).  

If you raise an issue at http://developer.atlassian.com/jira/browse/NANT for the support of NCover and NDepend, then I'll endeavour to add support for those tools (if you could attach sample reports too, that'd be great).

Cheers,

Ross


Enter the text you see in the image:

Leave a Comment

(required) 
required 
(required)