diff options
-rw-r--r-- | lib/bundler/settings.rb | 5 | ||||
-rw-r--r-- | spec/bundler/install/deploy_spec.rb | 6 |
2 files changed, 9 insertions, 2 deletions
diff --git a/lib/bundler/settings.rb b/lib/bundler/settings.rb index 88dd829d66..b424bcfd52 100644 --- a/lib/bundler/settings.rb +++ b/lib/bundler/settings.rb @@ -219,7 +219,6 @@ module Bundler def path configs.each do |_level, settings| path = value_for("path", settings) - path = "vendor/bundle" if value_for("deployment", settings) && path.nil? path_system = value_for("path.system", settings) disabled_shared_gems = value_for("disable_shared_gems", settings) next if path.nil? && path_system.nil? && disabled_shared_gems.nil? @@ -227,7 +226,9 @@ module Bundler return Path.new(path, system_path) end - Path.new(nil, false) + path = "vendor/bundle" if self[:deployment] + + Path.new(path, false) end Path = Struct.new(:explicit_path, :system_path) do diff --git a/spec/bundler/install/deploy_spec.rb b/spec/bundler/install/deploy_spec.rb index fb97e5c34c..3f98d56f41 100644 --- a/spec/bundler/install/deploy_spec.rb +++ b/spec/bundler/install/deploy_spec.rb @@ -248,6 +248,12 @@ RSpec.describe "install in deployment or frozen mode" do expect(out).to include("vendor/bundle2") end + it "installs gems to custom path if specified, even when configured through ENV" do + bundle "config set deployment true" + bundle "install", :env => { "BUNDLE_PATH" => "vendor/bundle2" } + expect(out).to include("vendor/bundle2") + end + it "works with the `frozen` setting" do bundle "config set frozen true" bundle "install" |