Git has become very popular in the Ruby community. Github in particular has become a focal point for Ruby innovation. So which Continuous Integration tools support Git and Rake (the Ruby community’s build tool of choice)? I’ve been trying a few out for the 1Click2Fame build process.
What I am looking for is a Continuous Integration server that:
- supports Rake
- supports Git, via Github
- can run multiple agents (I want to test our website against many operating systems)
- can stop a running build (sometimes, you know it’s not going to work out)
- has a configuration gui
First out the gate is the daddy of Continuous Integration tools, CruiseControl. It supports both git and rake out of the box. Good.
- It works
- I know it very well
- It works on a single node
- You can’t stop a build
- No GUI (unless you go visit Al Wick)
- The new Java GUI doesn’t render Ruby output very well. The XSL approach may have been as old as the hills, but people did tinker with it.
Next out is CruiseControl.rb. This project was sponsored by ThoughtWorks as a way to make it easier for Ruby projects to use Continuous Integration. I kind of hate it. The original CruiseControl ended up releasing Rake support before the Ruby port happened.
Anyway, it’s done. There used to be this meme that you had to have a CI server written in the language that your engineers wrote every day. I don’t think that’s the case now. These days, I’d suggest that you could do something cool with JRuby to not write all that code yet again (ThoughtWorks were forced to port CruiseControl to .NET by a customer who actually banned Java code from their site – not at all insecure then).
It supports both git and rake, but it’s always felt a little fiddly to me. You have to add a project from the shell on the machine, not from the GUI. The Git support seems like an aftermarket accessory rather than a factory option. Here’s how it stacks up:
- It works
- Ruby hackers can hack it
- It does render rake output nicely, until you reach a limit, and then it truncates the output. You can see the full raw output.
- Single node
- Can’t stop a build
- No Config GUI
While CC.rb works, it’s not rocking our world. The quest for Continuous Integration greatness continues. Next episode: Cruise.