Diaspora uses CruiseControl.rb to run our continuous integration server. CC.rb is on Rails 2.3, but the applications it’s building are on Rails 3, which means I occasionally run into … weirdness.
Last week, for example, I wanted to speed up our builds by upgrading Bundler to 1.0.10 and RubyGems to 1.5.2. Because of the new partial caching of the dependency graph, the upgrades shaved two whole minutes off the build locally, and I wanted to get that on CI.
Trouble is, once I did the upgrades, I got this upon restarting CC.rb:
It turns out that older versions of Rails 2.3 aren’t compatible with the new version of RubyGems. To fix this, I added the following to CC.rb’s config/environment.rb
, between the definition of ABSOLUTE_RAILS_ROOT
and the Rails::Initializer
block.
Both the 1.8 and 1.9 builds are now about 2 minutes faster which is awesome. Highly recommend the upgrades.
Nice, I just set up cc, good tip!
[…] means I occasionally run into … weirdness. Last week, for example, I wanted to speed up… [full post] sarahmei Sarah Mei uncategorized 0 0 0 0 1 […]
Hello Sarah,
I’ve used Cruisecontrolrb for many projects, but thought it wasn’t 1.9.2 friendly?
You have ccrb working with Ruby 1.9.2? Is there a particular branch of ccrb on github to use for Ruby 1.9.2?
Cheers,
Nicholas Faiz
Nicholas, in the Diaspora setup, ccrb itself still runs under 1.8.7. But it builds the app using both 1.8.7 and 1.9.2 (in separate projects).
I use RVM to make this happen. You can see the shell script for the 1.9.2 build on github.
I worked briefly on the CC.rb project (the most recent, 1.4.0 release which was about two years ago) while I was still at ThoughtWorks.
Some of my colleagues and I recently re-evaluated our company’s requirements from CC.rb (you can see our instance here) and concluded that the cost of adding features that we cared about was too high and that it would be simpler to re-write it; we are now working on a re-boot of CC.rb called Goldberg that will eventually do everything CC.rb does but with support for RVM, and will run on rbx, jruby and 1.9.2. In the medium term we plan to add support for pipelines and agents too.
At this point it’s in alpha but does the basic things you’d expect from a CI server. We’re just starting to dogfood it ourselves and I’d greatly appreciate both feedback and feature requests based on what you really miss in CC.rb.
Hi Sarah,
Just following up, your pull request for this has now been addressed (CCRB is now Rails 3): https://github.com/thoughtworks/cruisecontrol.rb/pull/13
— Chad