39203f1adf
This change simplifies a Pipeline processing by introducing a special new status: created. This status is used for all builds that are created for a pipeline. We are then processing next stages and queueing some of the builds (created -> pending) or skipping them (created -> skipped). This makes it possible to simplify and solve a few ordering problems with how previously builds were scheduled. This also allows us to visualise a full pipeline (with created builds). This also removes an after_touch used for updating a pipeline state parameters. Right now in various places we explicitly call a reload_status! on pipeline to force it to be updated and saved.
13 lines
406 B
Ruby
13 lines
406 B
Ruby
module Ci
|
|
class CreateTriggerRequestService
|
|
def execute(project, trigger, ref, variables = nil)
|
|
trigger_request = trigger.trigger_requests.create(variables: variables)
|
|
|
|
pipeline = Ci::CreatePipelineService.new(project, nil, ref: ref).
|
|
execute(ignore_skip_ci: true, trigger_request: trigger_request)
|
|
if pipeline.persisted?
|
|
trigger_request
|
|
end
|
|
end
|
|
end
|
|
end
|