diff options
Diffstat (limited to 'app/services/ci/create_commit_service.rb')
-rw-r--r-- | app/services/ci/create_commit_service.rb | 39 |
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 |