Merge branch 'gitaly-test-bundle-path' into 'master'
Use existing BUNDLE_PATH for gitaly in local tests See merge request !13493
This commit is contained in:
commit
004d335f26
|
|
@ -15,13 +15,17 @@ namespace :gitlab do
|
||||||
checkout_or_clone_version(version: version, repo: args.repo, target_dir: args.dir)
|
checkout_or_clone_version(version: version, repo: args.repo, target_dir: args.dir)
|
||||||
|
|
||||||
_, status = Gitlab::Popen.popen(%w[which gmake])
|
_, status = Gitlab::Popen.popen(%w[which gmake])
|
||||||
command = status.zero? ? 'gmake' : 'make'
|
command = status.zero? ? ['gmake'] : ['make']
|
||||||
|
|
||||||
|
if Rails.env.test?
|
||||||
|
command += %W[BUNDLE_PATH=#{Bundler.bundle_path}]
|
||||||
|
end
|
||||||
|
|
||||||
Dir.chdir(args.dir) do
|
Dir.chdir(args.dir) 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 RUBYOPT -u BUNDLE_GEMFILE] + [command]) }
|
Bundler.with_original_env { run_command!(%w[/usr/bin/env -u RUBYOPT -u BUNDLE_GEMFILE] + command) }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -54,17 +54,17 @@ describe 'gitlab:gitaly namespace rake task' do
|
||||||
before do
|
before do
|
||||||
FileUtils.mkdir_p(clone_path)
|
FileUtils.mkdir_p(clone_path)
|
||||||
expect(Dir).to receive(:chdir).with(clone_path).and_call_original
|
expect(Dir).to receive(:chdir).with(clone_path).and_call_original
|
||||||
|
allow(Bundler).to receive(:bundle_path).and_return('/fake/bundle_path')
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'gmake is available' do
|
context 'gmake is available' do
|
||||||
before do
|
before do
|
||||||
expect(main_object).to receive(:checkout_or_clone_version)
|
expect(main_object).to receive(:checkout_or_clone_version)
|
||||||
allow(main_object).to receive(:run_command!).with(command_preamble + ['gmake']).and_return(true)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'calls gmake in the gitaly directory' do
|
it 'calls gmake in the gitaly directory' do
|
||||||
expect(Gitlab::Popen).to receive(:popen).with(%w[which gmake]).and_return(['/usr/bin/gmake', 0])
|
expect(Gitlab::Popen).to receive(:popen).with(%w[which gmake]).and_return(['/usr/bin/gmake', 0])
|
||||||
expect(main_object).to receive(:run_command!).with(command_preamble + ['gmake']).and_return(true)
|
expect(main_object).to receive(:run_command!).with(command_preamble + %w[gmake BUNDLE_PATH=/fake/bundle_path]).and_return(true)
|
||||||
|
|
||||||
run_rake_task('gitlab:gitaly:install', clone_path)
|
run_rake_task('gitlab:gitaly:install', clone_path)
|
||||||
end
|
end
|
||||||
|
|
@ -73,15 +73,26 @@ describe 'gitlab:gitaly namespace rake task' do
|
||||||
context 'gmake is not available' do
|
context 'gmake is not available' do
|
||||||
before do
|
before do
|
||||||
expect(main_object).to receive(:checkout_or_clone_version)
|
expect(main_object).to receive(:checkout_or_clone_version)
|
||||||
allow(main_object).to receive(:run_command!).with(command_preamble + ['make']).and_return(true)
|
expect(Gitlab::Popen).to receive(:popen).with(%w[which gmake]).and_return(['', 42])
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'calls make in the gitaly directory' do
|
it 'calls make in the gitaly directory' do
|
||||||
expect(Gitlab::Popen).to receive(:popen).with(%w[which gmake]).and_return(['', 42])
|
expect(main_object).to receive(:run_command!).with(command_preamble + %w[make BUNDLE_PATH=/fake/bundle_path]).and_return(true)
|
||||||
expect(main_object).to receive(:run_command!).with(command_preamble + ['make']).and_return(true)
|
|
||||||
|
|
||||||
run_rake_task('gitlab:gitaly:install', clone_path)
|
run_rake_task('gitlab:gitaly:install', clone_path)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'when Rails.env is not "test"' do
|
||||||
|
before do
|
||||||
|
allow(Rails.env).to receive(:test?).and_return(false)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'calls make in the gitaly directory without BUNDLE_PATH' do
|
||||||
|
expect(main_object).to receive(:run_command!).with(command_preamble + ['make']).and_return(true)
|
||||||
|
|
||||||
|
run_rake_task('gitlab:gitaly:install', clone_path)
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue