_heading.html.haml 1.7 KB
Newer Older
1
- ci_commit = @merge_request.ci_commit
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
- if ci_commit
  - status = ci_commit.status
  .mr-widget-heading
    .ci_widget{class: "ci-#{status}"}
      = ci_status_icon(ci_commit)
      %span CI build #{status}
      for #{@merge_request.last_commit_short_sha}.
      %span.ci-coverage
      = link_to "View build details", ci_status_path(ci_commit)

- elsif @merge_request.has_ci?
  - # Compatibility with old CI integrations (ex jenkins) when you request status from CI server via AJAX
  - # Remove in later versions when services like Jenkins will set CI status via Commit status API
  .mr-widget-heading
    - [:success, :skipped, :canceled, :failed, :running, :pending].each do |status|
      .ci_widget{class: "ci-#{status}", style: "display:none"}
        - if status == :success
          - status = "passed"
          = icon("check-circle")
        - else
          = icon("circle")
23 24
        %span CI build #{status}
        for #{@merge_request.last_commit_short_sha}.
25
        %span.ci-coverage
26 27
        - if ci_build_details_path(@merge_request)
          = link_to "View build details", ci_build_details_path(@merge_request), :"data-no-turbolink" => "data-no-turbolink"
28

29 30 31
    .ci_widget
      = icon("spinner spin")
      Checking CI status for #{@merge_request.last_commit_short_sha}…
32

33 34 35
    .ci_widget.ci-not_found{style: "display:none"}
      = icon("times-circle")
      Could not find CI status for #{@merge_request.last_commit_short_sha}.
36

37 38 39
    .ci_widget.ci-error{style: "display:none"}
      = icon("times-circle")
      Could not connect to the CI server. Please check your settings and try again.
40

41 42 43 44
  :javascript
    $(function() {
      merge_request_widget.getCiStatus();
    });