summaryrefslogtreecommitdiff
path: root/app/services/ci/create_commit_service.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/ci/create_commit_service.rb')
-rw-r--r--app/services/ci/create_commit_service.rb39
1 files changed, 14 insertions, 25 deletions
diff --git a/app/services/ci/create_commit_service.rb b/app/services/ci/create_commit_service.rb
index 0a1abf89a95..9120a82edcd 100644
--- a/app/services/ci/create_commit_service.rb
+++ b/app/services/ci/create_commit_service.rb
@@ -16,33 +16,22 @@ module Ci
return false
end
- commit = project.commits.find_by_sha_and_ref(sha, ref)
-
- # Create commit if not exists yet
- unless commit
- data = {
- ref: ref,
- sha: sha,
- tag: origin_ref.start_with?('refs/tags/'),
- before_sha: before_sha,
- push_data: {
- before: before_sha,
- after: sha,
- ref: ref,
- user_name: params[:user_name],
- user_email: params[:user_email],
- repository: params[:repository],
- commits: params[:commits],
- total_commits_count: params[:total_commits_count],
- ci_yaml_file: params[:ci_yaml_file]
- }
- }
-
- commit = project.commits.create(data)
- end
+ tag = origin_ref.start_with?('refs/tags/')
+ push_data = {
+ before: before_sha,
+ after: sha,
+ ref: ref,
+ user_name: params[:user_name],
+ user_email: params[:user_email],
+ repository: params[:repository],
+ commits: params[:commits],
+ total_commits_count: params[:total_commits_count],
+ ci_yaml_file: params[:ci_yaml_file]
+ }
+ commit = project.gl_project.ensure_ci_commit(sha)
commit.update_committed!
- commit.create_builds unless commit.builds.any?
+ commit.create_builds(ref, tag, push_data)
commit
end