提交 6a29d3a4 编写于 作者: R 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: NRémy Coutable <remy@rymai.me>
上级 88958e5a
......@@ -21,7 +21,7 @@ namespace :gitlab do
create_gitaly_configuration
# In CI we run scripts/gitaly-test-build instead of this command
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
......
......@@ -63,6 +63,8 @@ module TestEnv
# See gitlab.yml.example test section for paths
#
def init(opts = {})
Gitlab::Application.load_tasks
# Disable mailer for spinach tests
disable_mailer if opts[:mailer] == false
......@@ -122,11 +124,13 @@ module TestEnv
end
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)
unless !shell_needs_update || system('rake', 'gitlab:shell:install')
raise 'Can`t clone gitlab-shell'
unless !gitlab_shell_needs_update || Rake.application.invoke_task('gitlab:shell:install')
FileUtils.rm_rf(gitlab_shell_dir)
raise "Can't install gitlab-shell"
end
end
......@@ -136,8 +140,9 @@ module TestEnv
gitaly_needs_update = component_needs_update?(gitaly_dir,
Gitlab::GitalyClient.expected_server_version)
unless !gitaly_needs_update || system('rake', "gitlab:gitaly:install[#{gitaly_dir}]")
raise "Can't clone gitaly"
unless !gitaly_needs_update || Rake.application.invoke_task("gitlab:gitaly:install[#{gitaly_dir}]")
FileUtils.rm_rf(gitaly_dir)
raise "Can't install gitaly"
end
start_gitaly(gitaly_dir)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册