summaryrefslogtreecommitdiff
path: root/app/services/ci/update_build_queue_service.rb
blob: 31c7178c9e74e86ce2df5d5ecbb963a6357a1e90 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# frozen_string_literal: true

module Ci
  class UpdateBuildQueueService
    def execute(build)
      tick_for(build, build.project.all_runners)
    end

    private

    def tick_for(build, runners)
      if Feature.enabled?(:ci_update_queues_for_online_runners, build.project, default_enabled: true)
        runners = runners.with_recent_runner_queue
      end

      runners.each do |runner|
        runner.pick_build!(build)
      end
    end
  end
end