in app/services/register_build_service.rb [3:37]
def execute(current_runner)
builds = Build.pending.unstarted
builds =
if current_runner.shared?
builds.includes(:project).where(projects: { shared_runners_enabled: true })
else
builds.where(project_id: current_runner.projects)
end
builds = builds.order('created_at ASC')
build = builds.find do |build|
(build.tag_list - current_runner.tag_list).empty?
end
if build
build.with_lock do
build.runner_id = current_runner.id
build.save!
build.run!
end
end
build
rescue StateMachine::InvalidTransition
nil
end