views:

173

answers:

2

I want to setup CruiseControl.Net at my company. We currently have several .net solutions stored in a Bazaar repository and I want to use MSBuild to build each solution. This didn't seem too controversial, but I can't see an easy way of binding CruiseControl.Net to Bazaar.

There seems to have been a plugin to do this at http://www.sorn.net/projects/bazaar-ccnet but this link no longer works and I cant seem to find the plugin anywhere else

I was going to use the External source control type, but bazaar seems to bork at the GETMODS parameter being passed to it

My current thought now is to create a separate project to pull modifications from bazaar using an Exec task, then create another project to run a FileSystem source control check on that directory. I'm moderately sure I can get this to work, but it seems a bit hacky.

I don't mind writing a new Bazaar plugin for CruiseControl.Net but I cant find where to start with this.

My questions are

  • do you run these two in combination, if so how do you do it?
  • If you don't run these together, do you have any recommendations on a good approach?
  • Is there any documentation or good starting point that I could use to write a bazaar plugin?
  • Am I an idiot for trying to use CruiseControl.Net? Should I be using something else?
A: 

I don't know much about Bazaar but I know a fair bit about Cruise Control. If Bazaar has a command line interface you can write an MSBuild script that would hook into it then in turn hook that up to CCNet.

I haven't looked too much into CCNet plugins but I would imagine they are just wrappers around the command line interface of a program.

Burt
Sorry Burt, but you haven't answered any of my questions
Chris Gill
+2  A: 

I would write my own plugin if I were you. You will find the currently implemented source controls under project/core/sourcecontrol in the CC.NET repository. There are a few things you need. One is the main class, this will inherit from ProcessSourceControl and should be based on the current source control providers. This initial class will implement things like GetModifications, LabelSourceControl, and GetSource. You will then need a few helper classes whcih are the historyparser class, and the urlbuilder class. These are specific to each source control provider and take care of parsing out the returns from a getHistory command or whatever yours has. And putting all the necessary pieces into the modification objects. The url builder takes the info form the modification objects and creates urls which will bring up the specific checkin in your web browser if your source control supports this. It really should be pretty easy for you, it is one of the best parts of CC.NET, in that anything they dont provide you can write yourself easily. I don't know of any other continuous integrations that support Bazaar, so you may be best off staying with CC.NET due to its customization abilities.

Alex
Really good answer - definitely worth the points. I've implemented a workaround where the bazaar check out runs as exec jobs, so I don't know if I will get round to implementing the CC Net code...
Chris Gill
@Alex, regarding other CI support for Bazaar:Hudson claims to support Bazaar. We're in the midst of trying it out, not sure what stage that's at right now.
Adam Glauser