Commit 6a29d3a4 authored by Rémy Coutable's avatar Rémy Coutable

Ensure we run installation Rake tasks in a clean env in TestEnv

If we call `system('rake', 'taks_name')`, `ENV['RUBYOPT']` is set to
`'-rbundler/setup'` but some tasks (e.g. `gitlab:gitaly:install` need
a clean env since they install their own Gem bundle.
Signed-off-by: default avatarRémy Coutable <remy@rymai.me>
parent 88958e5a
...@@ -21,7 +21,7 @@ namespace :gitlab do ...@@ -21,7 +21,7 @@ namespace :gitlab do
create_gitaly_configuration create_gitaly_configuration
# In CI we run scripts/gitaly-test-build instead of this command # In CI we run scripts/gitaly-test-build instead of this command
unless ENV['CI'].present? unless ENV['CI'].present?
Bundler.with_original_env { run_command!(%w[/usr/bin/env -u BUNDLE_GEMFILE] + [command]) } Bundler.with_original_env { run_command!([command]) }
end end
end end
end end
......
...@@ -63,6 +63,8 @@ module TestEnv ...@@ -63,6 +63,8 @@ module TestEnv
# See gitlab.yml.example test section for paths # See gitlab.yml.example test section for paths
# #
def init(opts = {}) def init(opts = {})
Gitlab::Application.load_tasks
# Disable mailer for spinach tests # Disable mailer for spinach tests
disable_mailer if opts[:mailer] == false disable_mailer if opts[:mailer] == false
...@@ -122,11 +124,13 @@ module TestEnv ...@@ -122,11 +124,13 @@ module TestEnv
end end
def setup_gitlab_shell def setup_gitlab_shell
shell_needs_update = component_needs_update?(Gitlab.config.gitlab_shell.path, gitlab_shell_dir = File.dirname(Gitlab.config.gitlab_shell.path)
gitlab_shell_needs_update = component_needs_update?(gitlab_shell_dir,
Gitlab::Shell.version_required) Gitlab::Shell.version_required)
unless !shell_needs_update || system('rake', 'gitlab:shell:install') unless !gitlab_shell_needs_update || Rake.application.invoke_task('gitlab:shell:install')
raise 'Can`t clone gitlab-shell' FileUtils.rm_rf(gitlab_shell_dir)
raise "Can't install gitlab-shell"
end end
end end
...@@ -136,8 +140,9 @@ module TestEnv ...@@ -136,8 +140,9 @@ module TestEnv
gitaly_needs_update = component_needs_update?(gitaly_dir, gitaly_needs_update = component_needs_update?(gitaly_dir,
Gitlab::GitalyClient.expected_server_version) Gitlab::GitalyClient.expected_server_version)
unless !gitaly_needs_update || system('rake', "gitlab:gitaly:install[#{gitaly_dir}]") unless !gitaly_needs_update || Rake.application.invoke_task("gitlab:gitaly:install[#{gitaly_dir}]")
raise "Can't clone gitaly" FileUtils.rm_rf(gitaly_dir)
raise "Can't install gitaly"
end end
start_gitaly(gitaly_dir) start_gitaly(gitaly_dir)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment