.commit-box %h3.commit-title = markdown(commit.title, pipeline: :single_line) - if commit.description.present? %pre.commit-description< = preserve(markdown(commit.description, pipeline: :single_line)) .info-well .well-segment.pipeline-info .icon-container.gl-vertical-align-text-bottom = sprite_icon('clock') = pluralize @pipeline.total_size, "job" = @pipeline.ref_text - if @pipeline.duration in = time_interval_in_words(@pipeline.duration) - if @pipeline.queued_duration = "(queued for #{time_interval_in_words(@pipeline.queued_duration)})" .well-segment.qa-pipeline-badges .icon-container = sprite_icon('flag') - if @pipeline.child? %span.js-pipeline-child.badge.badge-pill.gl-badge.sm.badge-primary.has-tooltip{ title: s_("Pipelines|This is a child pipeline within the parent pipeline") } = s_('Pipelines|Child pipeline') = surround '(', ')' do = link_to s_('Pipelines|parent'), pipeline_path(@pipeline.triggered_by_pipeline), class: 'text-white text-underline' - if @pipeline.latest? %span.js-pipeline-url-latest.badge.badge-pill.gl-badge.sm.badge-success.has-tooltip{ title: _("Latest pipeline for the most recent commit on this branch") } latest - if @pipeline.merge_train_pipeline? %span.js-pipeline-url-train.badge.badge-pill.gl-badge.sm.badge-info.has-tooltip{ title: _("This is a merge train pipeline") } train - if @pipeline.has_yaml_errors? %span.js-pipeline-url-yaml.badge.badge-pill.gl-badge.sm.badge-danger.has-tooltip{ title: @pipeline.yaml_errors } yaml invalid - if @pipeline.failure_reason? %span.js-pipeline-url-failure.badge.badge-pill.gl-badge.sm.badge-danger.has-tooltip{ title: @pipeline.failure_reason } error - if @pipeline.auto_devops_source? - popover_title_text = html_escape(_('This pipeline makes use of a predefined CI/CD configuration enabled by %{b_open}Auto DevOps.%{b_close}')) % { b_open: ''.html_safe, b_close: ''.html_safe } - popover_content_url = help_page_path('topics/autodevops/index.md') - popover_content_text = _('Learn more about Auto DevOps') %a.js-pipeline-url-autodevops.badge.badge-pill.gl-badge.sm.badge-info.autodevops-badge{ href: "#", tabindex: "0", role: "button", data: { container: "body", toggle: "popover", placement: "top", html: "true", triggers: "focus", title: "
#{popover_title_text}
", content: "#{popover_content_text}", } } Auto DevOps - if @pipeline.detached_merge_request_pipeline? %span.js-pipeline-url-mergerequest.badge.badge-pill.gl-badge.sm.badge-info.has-tooltip{ title: _('Pipelines for merge requests are configured. A detached pipeline runs in the context of the merge request, and not against the merged result. Learn more in the documentation for Pipelines for Merged Results.') } detached - if @pipeline.stuck? %span.js-pipeline-url-stuck.badge.badge-pill.gl-badge.sm.badge-warning stuck .well-segment.branch-info .icon-container.commit-icon = custom_icon("icon_commit") = link_to commit.short_id, project_commit_path(@project, @pipeline.sha), class: "commit-sha" = clipboard_button(text: @pipeline.sha, title: _("Copy commit SHA")) .well-segment.related-merge-request-info .icon-container = sprite_icon("git-merge") %span.related-merge-requests %span.js-truncated-mr-list = @pipeline.all_related_merge_request_text(limit: 1) - if @pipeline.has_many_merge_requests? = link_to("#", class: "js-toggle-mr-list") do %span.text-expander = sprite_icon('ellipsis_h', size: 12) %span.js-full-mr-list.hide = @pipeline.all_related_merge_request_text