BigW Consortium Gitlab

_heading.html.haml 1.66 KB
- ci_commit = @merge_request.ci_commit
- 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")
        %span CI build #{status}
        for #{@merge_request.last_commit_short_sha}.
        %span.ci-coverage
        - if ci_build_details_path(@merge_request)
          = link_to "View build details", ci_build_details_path(@merge_request), :"data-no-turbolink" => "data-no-turbolink"

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

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

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

  :javascript
    $(function() {
      merge_request_widget.getCiStatus();
    });