summaryrefslogtreecommitdiff
path: root/lib/ci/api/builds.rb
diff options
context:
space:
mode:
authorKim "BKC" Carlbäcker <kim.carlbacker@gmail.com>2016-12-14 12:14:25 +0100
committerKim "BKC" Carlbäcker <kim.carlbacker@gmail.com>2016-12-14 14:35:43 +0100
commitafea2df15121c0fa4d36f16b050421f681564b64 (patch)
tree9815fb0784a3503abe0d37d6690f57370b7dd46d /lib/ci/api/builds.rb
parent3a90612660ab90225907ec6d79032905885c2507 (diff)
downloadgitlab-ce-afea2df15121c0fa4d36f16b050421f681564b64.tar.gz
First attempt
Diffstat (limited to 'lib/ci/api/builds.rb')
-rw-r--r--lib/ci/api/builds.rb17
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/ci/api/builds.rb b/lib/ci/api/builds.rb
index ed87a2603e8..1ec4584a13f 100644
--- a/lib/ci/api/builds.rb
+++ b/lib/ci/api/builds.rb
@@ -16,6 +16,15 @@ module Ci
not_found! unless current_runner.active?
update_runner_info
+ last_update = Gitlab::Redis.with { |redis| redis.get(current_runner_redis_key)}
+
+ if params[:last_update] != ""
+ if :last_update == last_update
+ headers 'X-GitLab-Last-Update', last_update
+ return build_not_found!
+ end
+ end
+
build = Ci::RegisterBuildService.new.execute(current_runner)
if build
@@ -26,6 +35,14 @@ module Ci
else
Gitlab::Metrics.add_event(:build_not_found)
+ if last_update == ""
+ Gitlab::Redis.with do |redis]
+ new_update = Time.new.inspect
+ redis.set(current_runner_redis_key, new_update, ex: 60.minutes)
+ headers 'X-GitLab-Last-Update', new_update
+ end
+ end
+
build_not_found!
end
end