summaryrefslogtreecommitdiff
path: root/app/helpers/ci/builds_helper.rb
blob: b4a2cf7bb1e37481110f49273674868e05fcfc64 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
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
42
43
44
45
46
47
48
49
50
# frozen_string_literal: true

module Ci
  module BuildsHelper
    def build_summary(build, skip: false)
      if build.has_trace?
        if skip
          link_to _('View job log'), pipeline_job_url(build.pipeline, build)
        else
          build.trace.html(last_lines: 10).html_safe
        end
      else
        _('No job log')
      end
    end

    def sidebar_build_class(build, current_build)
      build_class = []
      build_class << 'active' if build.id === current_build.id
      build_class << 'retried' if build.retried?
      build_class.join(' ')
    end

    def javascript_build_options
      {
        page_path: project_job_path(@project, @build),
        build_status: @build.status,
        build_stage: @build.stage,
        log_state: ''
      }
    end

    def build_failed_issue_options
      {
        title: _("Job Failed #%{build_id}") % { build_id: @build.id },
        description: project_job_url(@project, @build)
      }
    end

    def prepare_failed_jobs_summary_data(failed_builds)
      failed_builds.map do |build|
        {
          id: build.id,
          failure: build.present.callout_failure_message,
          failure_summary: build_summary(build)
        }
      end.to_json
    end
  end
end