Skip to content
Snippets Groups Projects
Commit 68774452 authored by Grzegorz Bizon's avatar Grzegorz Bizon
Browse files

Fix async pipeline and remove unrelated changes

parent 4567e624
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -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
Loading
Loading
Loading
Loading
@@ -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
Loading
Loading
Loading
Loading
@@ -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
Loading
Loading
@@ -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
Loading
Loading
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
Loading
Loading
Loading
Loading
@@ -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?
 
Loading
Loading
@@ -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
Loading
Loading
Loading
Loading
@@ -10,7 +10,7 @@ class ProcessPipelineWorker
return
end
 
pipeline.process! if params[:process]
pipeline.process! if params['process']
 
pipeline.update_status
end
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment