Alexy Khrabrov
2011-Jun-27 21:12 UTC
[Cruisecontrolrb-users] ccrb''s own gemset vs the build''s one
We use RVM for gemset management. ?The build has its own gemset, say ree at build. ?The ccrb was built with ree at 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 at 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
Brian Guthrie
2011-Jun-27 23:39 UTC
[Cruisecontrolrb-users] ccrb''s own gemset vs the build''s one
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 On Tue, Jun 28, 2011 at 7:12 AM, Alexy Khrabrov <deliverable at gmail.com> wrote:> We use RVM for gemset management. ?The build has its own gemset, say > ree at build. ?The ccrb was built with ree at 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 at 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 > Cruisecontrolrb-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/cruisecontrolrb-users >