[Cruisecontrolrb-users] ccrb's own gemset vs the build's one

4 views
Skip to first unread message

Alexy Khrabrov

unread,
Jun 27, 2011, 5:12:21 PM6/27/11
to cruisecont...@rubyforge.org
We use RVM for gemset management.  The build has its own gemset, say
ree@build.  The ccrb was built with ree@cruisecontrol, where
cruisecontrol was created specifically for it, switched into, and
filled with bundle install.

When we run our build, it was failing in jasmine, in the part where it
was checking for rspec2.  At the time we had rspec1 and rspec2 both
installed.  We uninstalled rspec 2.6.0 from the gemset build, and it
was still failing.  We then uninstalled rspec 2.6.0 from the gemset
cruisecontrol, and then the build went through.

Our build is not using bundler, but in its own directory we have an
.rvmrc containing the line "ree@build".

I wonder how the gemsets for ccrb and build interact -- the worrysome
sign is that rspec gem matters across both.  Would it be limited to
rake and rspec?  How do we know the build gemset is being respected
separately from ccrb's own cruisecontrol gemset?

-- Alexy
_______________________________________________
Cruisecontrolrb-users mailing list
Cruisecont...@rubyforge.org
http://rubyforge.org/mailman/listinfo/cruisecontrolrb-users

Brian Guthrie

unread,
Jun 27, 2011, 7:39:15 PM6/27/11
to cruisecont...@rubyforge.org
Hi Alexy,

(Note that this response only applies to the master branch of CC.rb on Github)

CC.rb doesn't currently recognize or handle .rvmrc files. It uses
Ruby's "cd" mechanism to switch to your project's home directory,
which means that it bypasses RVM's mechanism for recognizing those
files on each directory change and handling them appropriately.

It does, however, handle Bundler. If you have a Gemfile installed it
will attempt to do the right thing to isolate your project to that
gemset. I recognize that this doesn't help you much.

For now, if you would like to use RVM on your build server you can
write a custom script that executes it for you, rather than relying on
CC.rb's Rake build functionality. A build shell script would run RVM
before attempting to run Rake. This path is less user-friendly at
first but you might find it gives you more power over your build in
the long run.

We've held off on RVM integration for two reasons: First, because if
you use Bundler it is reasonably easy for CC.rb to isolate your
application's gem dependencies without the use of RVM, so it's a lower
priority for us; and second, because I'm not familiar with RVM's API
or internals, and I'm not sure what, exactly, RVM integration should
look like once it's done. I'm guessing that for most people, "RVM
integration" means "detect and honor a .rvmrc file".

I've opened a feature request to track this:
https://github.com/thoughtworks/cruisecontrol.rb/issues/57. Feel free
to change the wording or add notes.

Patches that attempt to address this would be gratefully accepted.

Cheers,

Brian

Reply all
Reply to author
Forward
0 new messages