Today I was investigating Continuous Integration solutions for rails projects. In the end I ended up settling on CruiseControl.rb mainly because it’s a rails app and most of the others where Java based.
The only problem is that CruiseControl.rb doesn’t currently support Bazaar, in fact the released version only supports SVN while the development version supports Git and Mercurual.
Anyway after a couple of hours of hacking I came up with the following patch which I’ve filed as a bug.
What was it about being a rails project that made it incompatible with existing CI servers? From my point of view the CI server shouldn’t care what type of project you are working with. Java, C++, C#, Rails, Groovy, etc. should all be one and the same.
The same goes for VCS integration. If your CI is too tightly bound to your VCS, you’ll run into problems like you hit, where you have to write your own code to get around the issues.
The CI system should be loosely coupled to your dev environment. If it tries to know too much about what you are doing, then ultimately it won’t be flexible enough to adapt to new projects and methodologies.
@Mr. Hericus
I should have been a bit more specific. In this particular case my server was already setup to run rails apps and it was simply much simpler to setup another rails app than to have to install say Tomcat to get a java CI rig running. Purely a case of sysadmin laziness in this case. đŸ™‚
In this case the VCS integration is fairly loose. It’s not that complicated a patch basially a matter of
John
Thanks for the patch, John. It’s been merged into the 1.4.0 release of CC.rb