Sha256: d3a02feb0705db6d0aa61d76454d2f50258bb5251cd7bbc214cdcf410916ca7b

Contents?: true

Size: 938 Bytes

Versions: 28

Compression:

Stored size: 938 Bytes

Contents

# frozen_string_literal: true

require 'table_print'

module GitlabQuality
  module TestTooling
    module FailedJobsTable
      class << self
        # Create table with formatted list of failed jobs
        #
        # @param [Array<Gitlab::ObjectifiedHash>] jobs
        # @return [String]
        def create(jobs:)
          "```\n#{TablePrint::Printer.table_print(collect_results(jobs))}\n```\n"
        end

        private

        # Format list of failed jobs
        #
        # @param [Array<Gitlab::ObjectifiedHash>] jobs
        # @return [Array]
        def collect_results(jobs)
          jobs.sort_by(&:stage)
            .reject { |job| job.name.downcase.include?("quarantine") }
            .map do |job|
              {
                "Job" => job.name,
                "Stage" => job.stage,
                "Failure Reason" => job.failure_reason
              }
            end
        end
      end
    end
  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
gitlab_quality-test_tooling-1.30.0 lib/gitlab_quality/test_tooling/failed_jobs_table.rb
gitlab_quality-test_tooling-1.29.1 lib/gitlab_quality/test_tooling/failed_jobs_table.rb
gitlab_quality-test_tooling-1.29.0 lib/gitlab_quality/test_tooling/failed_jobs_table.rb
gitlab_quality-test_tooling-1.28.0 lib/gitlab_quality/test_tooling/failed_jobs_table.rb
gitlab_quality-test_tooling-1.24.0 lib/gitlab_quality/test_tooling/failed_jobs_table.rb
gitlab_quality-test_tooling-1.23.0 lib/gitlab_quality/test_tooling/failed_jobs_table.rb
gitlab_quality-test_tooling-1.22.0 lib/gitlab_quality/test_tooling/failed_jobs_table.rb
gitlab_quality-test_tooling-1.21.1 lib/gitlab_quality/test_tooling/failed_jobs_table.rb