diff --git a/lib/tasks/gitlab/shell.rake b/lib/tasks/gitlab/shell.rake index 71716ae1856b77188b7e78f7b338562536166775..a8f26a7c02931f8484aea7d0d3d86a1f3e196ee0 100644 --- a/lib/tasks/gitlab/shell.rake +++ b/lib/tasks/gitlab/shell.rake @@ -22,7 +22,10 @@ namespace :gitlab do # Make sure we're on the right tag Dir.chdir(target_dir) do - sh "git fetch origin && git reset --hard $(git describe #{args.tag} || git describe origin/#{args.tag})" + # First try to checkout without fetching + # to avoid stalling tests if the Internet is down. + reset = "git reset --hard $(git describe #{args.tag} || git describe origin/#{args.tag})" + sh "#{reset} || git fetch origin && #{reset}" config = { user: user, diff --git a/spec/support/test_env.rb b/spec/support/test_env.rb index e67c29a67834f69b36bae8fe628b23a672010972..4b0a3856f89b48ae806ef55f44b53e9bdf97aab3 100644 --- a/spec/support/test_env.rb +++ b/spec/support/test_env.rb @@ -17,7 +17,11 @@ module TestEnv tmp_test_path = Rails.root.join('tmp', 'tests') if File.directory?(tmp_test_path) - FileUtils.rm_r(tmp_test_path) + Dir.entries(tmp_test_path).each do |entry| + unless ['.', '..', 'gitlab-shell'].include?(entry) + FileUtils.rm_r(File.join(tmp_test_path, entry)) + end + end end FileUtils.mkdir_p(tmp_test_path) @@ -38,9 +42,7 @@ module TestEnv end def setup_gitlab_shell - unless File.directory?(Gitlab.config.gitlab_shell.path) - %x[rake gitlab:shell:install] - end + `rake gitlab:shell:install` end def setup_factory_repo