summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Vosmaer (GitLab) <jacob@gitlab.com>2017-08-03 10:15:08 +0000
committerRémy Coutable <remy@rymai.me>2017-08-03 10:15:08 +0000
commit06165fa0afa843ada266b2f453eb723c8174b5bd (patch)
tree257dd7a2d839b3f0cb11e8c10dbdfe4ee45c326e
parentbeaa0723b864371421bf4b07dbba09c5a17277e2 (diff)
downloadgitlab-ce-06165fa0afa843ada266b2f453eb723c8174b5bd.tar.gz
Remove test gitaly when older than version file
-rwxr-xr-xscripts/gitaly-test-build11
-rw-r--r--spec/support/test_env.rb11
2 files changed, 21 insertions, 1 deletions
diff --git a/scripts/gitaly-test-build b/scripts/gitaly-test-build
index 44d314009e2..95d9fe0f176 100755
--- a/scripts/gitaly-test-build
+++ b/scripts/gitaly-test-build
@@ -1,5 +1,7 @@
#!/usr/bin/env ruby
+require 'fileutils'
+
# This script assumes tmp/tests/gitaly already contains the correct
# Gitaly version. We just have to compile it and run its 'bundle
# install'. We have this separate script for that because weird things
@@ -7,4 +9,11 @@
# called 'bundle install' using a different Gemfile, as happens with
# gitlab-ce and gitaly.
-abort 'gitaly build failed' unless system('make', chdir: 'tmp/tests/gitaly')
+dir = 'tmp/tests/gitaly'
+
+abort 'gitaly build failed' unless system('make', chdir: dir)
+
+# Make the 'gitaly' executable look newer than 'GITALY_SERVER_VERSION'.
+# Without this a gitaly executable created in the setup-test-env job
+# will look stale compared to GITALY_SERVER_VERSION.
+FileUtils.touch(File.join(dir, 'gitaly'), mtime: Time.now + (1 << 24))
diff --git a/spec/support/test_env.rb b/spec/support/test_env.rb
index f0603dfadde..7995b5893e2 100644
--- a/spec/support/test_env.rb
+++ b/spec/support/test_env.rb
@@ -133,6 +133,12 @@ module TestEnv
def setup_gitaly
socket_path = Gitlab::GitalyClient.address('default').sub(/\Aunix:/, '')
gitaly_dir = File.dirname(socket_path)
+
+ if gitaly_dir_stale?(gitaly_dir)
+ puts "rm -rf #{gitaly_dir}"
+ FileUtils.rm_rf(gitaly_dir)
+ end
+
gitaly_needs_update = component_needs_update?(gitaly_dir,
Gitlab::GitalyClient.expected_server_version)
@@ -143,6 +149,11 @@ module TestEnv
start_gitaly(gitaly_dir)
end
+ def gitaly_dir_stale?(dir)
+ gitaly_executable = File.join(dir, 'gitaly')
+ !File.exist?(gitaly_executable) || (File.mtime(gitaly_executable) < File.mtime(Rails.root.join('GITALY_SERVER_VERSION')))
+ end
+
def start_gitaly(gitaly_dir)
if ENV['CI'].present?
# Gitaly has been spawned outside this process already