diff --git a/app/models/ci/pipeline.rb b/app/models/ci/pipeline.rb index 7d23456cdac0f84f054f6c266d4b24056c8b49bb..cd6ead4ded2991dffcabf564058708cf338eb978 100644 --- a/app/models/ci/pipeline.rb +++ b/app/models/ci/pipeline.rb @@ -213,12 +213,6 @@ module Ci ] end - def execute_hooks - pipeline_data = Gitlab::DataBuilder::PipelineDataBuilder.build(self) - project.execute_hooks(pipeline_data, :pipeline_hooks) - project.execute_services(pipeline_data.dup, :pipeline_hooks) - end - private def build_builds_for_stages(stages, user, status, trigger_request) @@ -244,6 +238,13 @@ module Ci self.finished_at = statuses.finished_at self.duration = statuses.latest.duration save + execute_hooks + end + + def execute_hooks + pipeline_data = Gitlab::DataBuilder::PipelineDataBuilder.build(self) + project.execute_hooks(pipeline_data, :pipeline_hooks) + project.execute_services(pipeline_data.dup, :pipeline_hooks) end def keep_around_commits diff --git a/app/services/ci/create_pipeline_service.rb b/app/services/ci/create_pipeline_service.rb index be91bf0db85a30408b71731674fdf4c02d3fb339..7a8b0683acbbc342fdbf47f24ed93ae845943e17 100644 --- a/app/services/ci/create_pipeline_service.rb +++ b/app/services/ci/create_pipeline_service.rb @@ -27,6 +27,7 @@ module Ci end pipeline.save! + pipeline.touch unless pipeline.create_builds(current_user) pipeline.errors.add(:base, 'No builds for this pipeline.')