summaryrefslogtreecommitdiff
path: root/app/services/ci/pipeline_schedule_service.rb
blob: 536eaa56f9b428ece98ba20a0c507bcd881cadae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# frozen_string_literal: true

module Ci
  class PipelineScheduleService < BaseService
    def execute(schedule)
      return unless project.persisted?

      # Ensure `next_run_at` is set properly before creating a pipeline.
      # Otherwise, multiple pipelines could be created in a short interval.
      schedule.schedule_next_run!
      RunPipelineScheduleWorker.perform_async(schedule.id, schedule.owner&.id)
    end
  end
end