Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Preserve BUNDLE_GEMFILE and add a test for it #1893

Merged
merged 29 commits into from Feb 18, 2020
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
56bbc2d
Preserve BUNDLE_GEMFILE and add a test for it
seven1m Aug 8, 2019
a3ed997
Go back to using Bundler.with_original_env
seven1m Aug 8, 2019
4b27762
Gemfile.duplicate is no longer a thing
seven1m Aug 8, 2019
dad3e58
Rename test
seven1m Aug 8, 2019
9c2dd28
Skip this test on Windows
seven1m Aug 19, 2019
5e7a6fd
No need to fork
seven1m Aug 19, 2019
7d6780d
Merge remote-tracking branch 'upstream/master'
seven1m Feb 12, 2020
4cfd3b8
Preserve BUNDLE_GEMFILE and other Bundler env vars
seven1m Feb 12, 2020
242c140
Remove unneeded test support file
seven1m Feb 12, 2020
f15121f
Update changelog
seven1m Feb 12, 2020
3020316
Run test command without bash
seven1m Feb 13, 2020
d89af85
Remove skip for USR2
seven1m Feb 13, 2020
c83401c
Move test into separate file
seven1m Feb 13, 2020
cbf32d5
Add some logging to help diagnose Travis build failure
seven1m Feb 13, 2020
95bcd05
Is that really running over and over???
seven1m Feb 13, 2020
3be5f32
Yes! It is, but why?
seven1m Feb 13, 2020
9dcd2e3
Don't try to prune_bundler again
seven1m Feb 13, 2020
2ed158e
OMG it works! Remove diagnostic logging.
seven1m Feb 13, 2020
359cb69
When is Bundler loaded by puma-wild?
seven1m Feb 13, 2020
08dc10f
Reenable logging in the test
seven1m Feb 13, 2020
0d020df
Is Bundler defined when using with_clean_env?
seven1m Feb 13, 2020
d804495
When is Bundler loaded? (this is nuts)
seven1m Feb 13, 2020
10d4183
Let's see them args!
seven1m Feb 13, 2020
d84e0ae
Now let's see the ENV!
seven1m Feb 13, 2020
3d1c5e0
Bundler wins. Just set BUNDLE_GEMFILE manually
seven1m Feb 13, 2020
f73cd57
Remove diagnostic logging
seven1m Feb 13, 2020
bc4217b
Update changelog
seven1m Feb 13, 2020
62f075f
Add back test skip for platforms without USR2
seven1m Feb 14, 2020
1846ef3
Clarify changelog entry
seven1m Feb 18, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion lib/puma/launcher.rb
Expand Up @@ -277,7 +277,7 @@ def prune_bundler

log '* Pruning Bundler environment'
home = ENV['GEM_HOME']
Bundler.with_clean_env do
Bundler.with_original_env do
ENV['GEM_HOME'] = home
ENV['PUMA_BUNDLER_PRUNED'] = '1'
wild = File.expand_path(File.join(puma_lib_dir, "../bin/puma-wild"))
Expand Down
1 change: 1 addition & 0 deletions test/rackup/hello-bundler-env.ru
@@ -0,0 +1 @@
run lambda { |env| [200, {"Content-Type" => "text/plain"}, ["Hello PATH #{ENV["PATH"]}"]] }
14 changes: 10 additions & 4 deletions test/test_integration.rb
Expand Up @@ -51,8 +51,8 @@ def server_cmd(argv)
"#{base} -b tcp://127.0.0.1:#{@tcp_port} #{argv}"
end

def server(argv)
@server = IO.popen(server_cmd(argv), "r")
def server(argv, env = {})
@server = IO.popen(env, server_cmd(argv), "r")

wait_for_server_to_boot(@server)

Expand All @@ -75,8 +75,8 @@ def stop_forked_server(pid)
Process.wait2(pid)
end

def restart_server_and_listen(argv)
server(argv)
def restart_server_and_listen(argv, env = {})
server(argv, env)
connection = connect
initial_reply = read_body(connection)
restart_server(@server, connection)
Expand Down Expand Up @@ -239,6 +239,12 @@ def test_restart_closes_keepalive_sockets_workers
assert_equal "Hello World", new_reply
end

def test_restart_with_prune_bundler_keeps_bundler_env
initial_reply, new_reply = restart_server_and_listen("-q --prune-bundler test/rackup/hello-bundler-env.ru", "PATH" => "hello-bundler:#{ENV["PATH"]}", "BUNDLER_ORIG_PATH" => nil)
assert_match(/Hello PATH.*hello-bundler/, initial_reply)
assert_match(/Hello PATH.*hello-bundler/, new_reply)
end

def test_sigterm_closes_listeners_on_forked_servers
skip NO_FORK_MSG unless HAS_FORK
pid = start_forked_server("-w 2 -q test/rackup/1second.ru")
Expand Down