2015-08-26 01:42:46 +00:00
|
|
|
module Ci
|
|
|
|
class CreateTriggerRequestService
|
|
|
|
def execute(project, trigger, ref, variables = nil)
|
2015-12-04 11:55:23 +00:00
|
|
|
commit = project.commit(ref)
|
2015-10-05 12:31:51 +00:00
|
|
|
return unless commit
|
2015-08-26 01:42:46 +00:00
|
|
|
|
2015-10-05 11:37:50 +00:00
|
|
|
# check if ref is tag
|
2015-12-04 11:55:23 +00:00
|
|
|
tag = project.repository.find_tag(ref).present?
|
2015-10-05 12:31:51 +00:00
|
|
|
|
2016-03-31 17:51:28 +00:00
|
|
|
ci_commit = project.ci_commits.create(commit.sha, ref)
|
2015-10-05 11:37:50 +00:00
|
|
|
|
2015-08-26 01:42:46 +00:00
|
|
|
trigger_request = trigger.trigger_requests.create!(
|
2015-10-05 14:21:18 +00:00
|
|
|
variables: variables,
|
|
|
|
commit: ci_commit,
|
2015-08-26 01:42:46 +00:00
|
|
|
)
|
|
|
|
|
2015-10-02 11:46:38 +00:00
|
|
|
if ci_commit.create_builds(ref, tag, nil, trigger_request)
|
2015-08-26 01:42:46 +00:00
|
|
|
trigger_request
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|