I've been searching around for a Continuous Integration solution for Ruby on Rails, but haven't been too pleased with the results. I came from a .NET shop that used CruiseControl.NET and was really spoiled with its ease of use and rich status/reporting.
Ideally I'm looking for:
The obvious Git/SVN and Test::Unit integration
Integration with Rake and/or Capistrano
A web interface showing the status of the build
Email notification of failed builds.
Desktop notification (potentially through Growl)
REST API for build statuses
Plugin framework for running other code analysis tools and reporting results in the UI
I just went through the options here and thought I'd roll them up as of late 2011.
After a near-death experience that left the still-linked-to website with outdated information and downed the demo site, this project has a spark of life again. But the documentation hasn't moved on, and lots and lots of the steps in the tutorial are just plain broken; I had to change references to gems, build some things out of band, and then I still couldn't get it working.
Dead simple: you just download it, run a command line to add your project (there is no UI for doing so), and run the Rails app. But there's no UI for editing your project, either, and there's no real integration with build artifacts aside from displaying links to them: you get no graphs of tests run, no trend lines, etc. I also had to adjust the routes.rb
file to get the code linking working (the resources :projects
line needs to move below all the other non-default routes).
This looks awesome, but the pay scale seems out of whack. 3 agents free and then when you're dependent you need to dole out hundreds of dollars. Personal Builds looks great, but don't have the budget.
This is a Java stalwart and it is loaded up with a thousand options, so the UI is confusing and it's a chore to set up your projects. But once you set it up you get a whole lot of plugins that can pull from most anywhere, run most anything, and report most everything. The OS X Installer points Jenkins at /Users/Shared/Jenkins/Home
but fails to create that directory or chown
it to daemon
(which is uses by default, and you should change to a new jenkins
user so you can set up GitHub integration).
I didn't really try these, but thought I'd mention why:
We went with Jenkins, but I really wish one of the lighter-weight solutions had worked out.