4
votes

I'm installing a Ruby CI server which is pulling my Rails git repos from Github and installing the gems with Bundler. The CI server has a Gemfile of itself (as it's also a Rails application). So far so good.

Now, I first run a bundle install after a new git pull, this works fine:

bundle install --gemfile=[..]/build_13/Gemfile --deployment

Next I list the installed gems and run rake (to run the test suite):

bundle list
bundle exec rake

That's where it's going worng. These last 2 commands load the Gemfile of the CI server which is different from the one installed a few seconds ago. This Gemfile is in a parent directory of the one I want to run so I suppose it first finds the "parent" Gemfile and forgets to look for the correct one.

Any idea how I can tell bundler to use the correct gems?

1
What are the contents of ./.bundle/config? - Andrew Marshall
Contents of my ./.bundle/config file, does this help? --- BUNDLE_FROZEN: "1" BUNDLE_DISABLE_SHARED_GEMS: "1" BUNDLE_PATH: [..]/bundle - Cimm

1 Answers

4
votes

Got it!

You can specify the Gemfile path as an environment variable:

export BUNDLE_GEMFILE=[..]/build_13/Gemfile

This will force Bundler to use the correct Gemfile. Thanks to Philippe Creux' article for pointing me in the right direction.

For future reference:

I'm using BigTuna as my CI server and you'll need to add the statement above for each of the 'steps' to make it work.