summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-10-03 12:45:34 +0200
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-10-04 14:42:32 +0200
commit68774452a47ec71a490eb5eaeedd5a3222aa2c68 (patch)
tree1b1026a3f0b424a7de9de72f65abf4f7fbd8997c
parent4567e624a06358f0e3451be51d134f8dd22c199d (diff)
downloadgitlab-ce-68774452a47ec71a490eb5eaeedd5a3222aa2c68.tar.gz
Fix async pipeline and remove unrelated changes
-rw-r--r--app/models/ci/build.rb2
-rw-r--r--app/models/ci/pipeline.rb8
-rw-r--r--app/models/commit_status.rb7
-rw-r--r--app/services/merge_requests/add_todo_when_build_fails_service.rb8
-rw-r--r--app/services/merge_requests/base_service.rb15
-rw-r--r--app/workers/process_pipeline_worker.rb2
6 files changed, 16 insertions, 26 deletions
diff --git a/app/models/ci/build.rb b/app/models/ci/build.rb
index 7c9899334ad..5dbf66173de 100644
--- a/app/models/ci/build.rb
+++ b/app/models/ci/build.rb
@@ -67,7 +67,7 @@ module Ci
environment: build.environment,
status_event: 'enqueue'
)
- MergeRequests::AddTodoWhenBuildFailsService.new(build.project, nil).close(new_build.pipeline)
+ MergeRequests::AddTodoWhenBuildFailsService.new(build.project, nil).close(new_build)
build.pipeline.mark_as_processable_after_stage(build.stage_idx)
new_build
end
diff --git a/app/models/ci/pipeline.rb b/app/models/ci/pipeline.rb
index da0b9d83e1d..4c38a54ea3a 100644
--- a/app/models/ci/pipeline.rb
+++ b/app/models/ci/pipeline.rb
@@ -73,14 +73,6 @@ module Ci
after_transition do |pipeline, transition|
pipeline.execute_hooks unless transition.loopback?
end
-
- after_transition [:created, :pending, :running] => :success do |pipeline|
- MergeRequests::MergeWhenBuildSucceedsService.new(pipeline.project, nil).trigger(pipeline)
- end
-
- after_transition any => :failed do |pipeline|
- MergeRequests::AddTodoWhenBuildFailsService.new(pipeline.project, nil).execute(pipeline)
- end
end
# ref can't be HEAD or SHA, can only be branch/tag name
diff --git a/app/models/commit_status.rb b/app/models/commit_status.rb
index 3d5e449f403..b0718e2213c 100644
--- a/app/models/commit_status.rb
+++ b/app/models/commit_status.rb
@@ -69,11 +69,6 @@ class CommitStatus < ActiveRecord::Base
commit_status.update_attributes finished_at: Time.now
end
- after_transition any => [:success, :failed, :canceled] do |commit_status|
- commit_status.pipeline.try(:process!)
- true
- end
-
after_transition [:created, :pending, :running] => :success do |commit_status|
MergeRequests::MergeWhenBuildSucceedsService.new(commit_status.pipeline.project, nil).trigger(commit_status)
end
@@ -86,7 +81,7 @@ class CommitStatus < ActiveRecord::Base
if commit_status.pipeline && !transition.loopback?
ProcessPipelineWorker.perform_async(
commit_status.pipeline.id,
- process: HasStatus.COMPLETED_STATUSES.include?(commit_status.status))
+ process: HasStatus::COMPLETED_STATUSES.include?(commit_status.status))
end
true
diff --git a/app/services/merge_requests/add_todo_when_build_fails_service.rb b/app/services/merge_requests/add_todo_when_build_fails_service.rb
index 45c73789886..566049525cb 100644
--- a/app/services/merge_requests/add_todo_when_build_fails_service.rb
+++ b/app/services/merge_requests/add_todo_when_build_fails_service.rb
@@ -1,15 +1,15 @@
module MergeRequests
class AddTodoWhenBuildFailsService < MergeRequests::BaseService
# Adds a todo to the parent merge_request when a CI build fails
- def execute(pipeline)
- each_merge_request(pipeline) do |merge_request|
+ def execute(commit_status)
+ each_merge_request(commit_status) do |merge_request|
todo_service.merge_request_build_failed(merge_request)
end
end
# Closes any pending build failed todos for the parent MRs when a build is retried
- def close(pipeline)
- each_merge_request(pipeline) do |merge_request|
+ def close(commit_status)
+ each_merge_request(commit_status) do |merge_request|
todo_service.merge_request_build_retried(merge_request)
end
end
diff --git a/app/services/merge_requests/base_service.rb b/app/services/merge_requests/base_service.rb
index 95b4f0ff733..d0d155b7ee1 100644
--- a/app/services/merge_requests/base_service.rb
+++ b/app/services/merge_requests/base_service.rb
@@ -42,11 +42,11 @@ module MergeRequests
super(:merge_request)
end
- def merge_request_from(pipeline)
- branches = pipeline.ref
+ def merge_request_from(commit_status)
+ branches = commit_status.ref
# This is for ref-less builds
- branches ||= @project.repository.branch_names_contains(pipeline.sha)
+ branches ||= @project.repository.branch_names_contains(commit_status.sha)
return [] if branches.blank?
@@ -56,11 +56,14 @@ module MergeRequests
merge_requests.uniq.select(&:source_project)
end
- def each_merge_request(pipeline)
+ def each_merge_request(commit_status)
merge_request_from(commit_status).each do |merge_request|
- next unless pipeline == merge_request.pipeline
+ pipeline = merge_request.pipeline
- yield merge_request
+ next unless pipeline
+ next unless pipeline.sha == commit_status.sha
+
+ yield merge_request, pipeline
end
end
end
diff --git a/app/workers/process_pipeline_worker.rb b/app/workers/process_pipeline_worker.rb
index fb59a1efb7a..fa1251b8e9f 100644
--- a/app/workers/process_pipeline_worker.rb
+++ b/app/workers/process_pipeline_worker.rb
@@ -10,7 +10,7 @@ class ProcessPipelineWorker
return
end
- pipeline.process! if params[:process]
+ pipeline.process! if params['process']
pipeline.update_status
end