failed.rb 1.0 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11
module Gitlab
  module Ci
    module Status
      module Build
        class Failed < Status::Extended
          REASONS = {
            'unknown_failure' => 'unknown failure',
            'script_failure' => 'script failure',
            'api_failure' => 'API failure',
            'stuck_or_timeout_failure' => 'stuck or timeout failure',
            'runner_system_failure' => 'runner system failure',
12 13
            'missing_dependency_failure' => 'missing dependency failure',
            # COMMENTED to check if CI fails: 'runner_unsupported' => 'unsuported runner',
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
          }.freeze

          def status_tooltip
            base_message
          end

          def badge_tooltip
            base_message
          end

          def self.matches?(build, user)
            build.failed?
          end

          private

          def base_message
            "#{s_('CiStatusLabel|failed')} #{description}"
          end

          def description
            "<br> (#{REASONS[subject.failure_reason]})"
          end
        end
      end
    end
  end
end