Preserve gem path so that we use the same gems
What does this MR do?
Preserve gem path so that we use the same gems
Are there points in the code the reviewer needs to double check?
I wish this does not break for the other people using bundler in a different way.
Why was this MR needed?
Without this patch, I would end up with:
An error occurred in a `before(:suite)` hook.
Failure/Error: raise "could not connect to gitaly at #{socket.inspect} after #{sleep_time} seconds"
RuntimeError:
could not connect to gitaly at "tmp/tests/gitaly/gitaly.socket" after 10 seconds
Digging into it, it's because scripts/gitaly-test-spawn
could not
spawn the process, because it cannot find the installed gems.
I personally installed all my gems under $HOME, namely with:
-
gem install rake --user-install
or: bundle install --path ~/.gem
The gems would be installed to ~/.gem/ruby/2.4.0/gems
, where
the version is Ruby ABI version.
Now we're changing $HOME, making RubyGems think that the gems
would be installed to tmp/tests/ruby/2.4.0/gems
which is
apparently not the case.
In order to workaround this, we could preserve $GEM_PATH populated by RubyGems, ignoring the default path based on $HOME.
Does this MR meet the acceptance criteria?
- Review
-
Has been reviewed by Backend
-
What are the relevant issue numbers?
This is based on https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15614
@jacobvosmaer-gitlab Could you please review?