Introduce Project#all_runners and use in Ci::UpdateBuildQueueService

This commit is contained in:
Dylan Griffith 2018-04-30 17:25:49 +04:00
parent dad35d6284
commit d8dd25a60e
2 changed files with 7 additions and 12 deletions

View file

@ -1304,10 +1304,13 @@ class Project < ActiveRecord::Base
@group_runners ||= group_runners_enabled? ? Ci::Runner.belonging_to_parent_group_of_project(self.id) : Ci::Runner.none
end
def all_runners
union = Gitlab::SQL::Union.new([runners, group_runners, shared_runners])
Ci::Runner.from("(#{union.to_sql}) ci_runners")
end
def any_runners?(&block)
union = Gitlab::SQL::Union.new([runners, shared_runners, group_runners])
runners = Ci::Runner.from("(#{union.to_sql}) ci_runners").active
runners.any?(&block)
all_runners.active.any?(&block)
end
def valid_runners_token?(token)

View file

@ -1,15 +1,7 @@
module Ci
class UpdateBuildQueueService
def execute(build)
tick_for(build, build.project.runners)
if build.project.group_runners_enabled?
tick_for(build, Ci::Runner.belonging_to_parent_group_of_project(build.project_id))
end
if build.project.shared_runners_enabled?
tick_for(build, Ci::Runner.shared)
end
tick_for(build, build.project.all_runners)
end
private