diff options
Diffstat (limited to 'app/models/ci/pipeline.rb')
-rw-r--r-- | app/models/ci/pipeline.rb | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/app/models/ci/pipeline.rb b/app/models/ci/pipeline.rb index 48354cdbefb..359c517b27b 100644 --- a/app/models/ci/pipeline.rb +++ b/app/models/ci/pipeline.rb @@ -254,6 +254,24 @@ module Ci builds.latest.failed_but_allowed.any? end + def recovered? + success? && previous_pipeline.try(:failed?) + end + + def first_success? + success? && previous_pipeline.nil? + end + + def previous_pipeline + return @previous_pipeline if defined?(@previous_pipeline) + + @previous_pipeline = + project.pipelines. + where(ref: ref). + where("#{self.class.quoted_table_name}.id < ?", id). + order(id: :desc).first + end + def config_processor return nil unless ci_yaml_file return @config_processor if defined?(@config_processor) |