%tr.build %td.status - if can?(current_user, :read_build, build) = ci_status_with_icon(build.status, namespace_project_build_url(build.project.namespace, build.project, build)) - else = ci_status_with_icon(build.status) %td.build-link - if can?(current_user, :read_build, build) = link_to namespace_project_build_url(build.project.namespace, build.project, build) do %strong ##{build.id} - else %strong ##{build.id} - if build.stuck? = icon('warning', class: 'text-warning has-tooltip', title: 'Build is stuck. Check runners.') - if defined?(retried) && retried = icon('warning', class: 'text-warning has-tooltip', title: 'Build was retried.') - if defined?(commit_sha) && commit_sha %td = link_to build.short_sha, namespace_project_commit_path(build.project.namespace, build.project, build.sha), class: "monospace" - if defined?(ref) && ref %td - if build.ref = link_to build.ref, namespace_project_commits_path(build.project.namespace, build.project, build.ref) - else .light none - if defined?(runner) && runner %td - if build.try(:runner) = runner_link(build.runner) - else .light none - if defined?(stage) && stage %td = build.stage %td = build.name %td .label-container - if build.tags.any? - build.tags.each do |tag| %span.label.label-primary = tag - if build.try(:trigger_request) %span.label.label-info triggered - if build.try(:allow_failure) %span.label.label-danger allowed to fail - if defined?(retried) && retried %span.label.label-warning retried %td.duration - if build.duration #{duration_in_words(build.finished_at, build.started_at)} %td.timestamp - if build.finished_at %span #{time_ago_with_tooltip(build.finished_at)} - if defined?(coverage) && coverage %td.coverage - if build.try(:coverage) #{build.coverage}% %td .pull-right - if can?(current_user, :read_build, build) && build.artifacts? = link_to download_namespace_project_build_artifacts_path(build.project.namespace, build.project, build), title: 'Download artifacts', class: 'btn btn-build' do = icon('download') - if can?(current_user, :update_build, build) - if build.active? = link_to cancel_namespace_project_build_path(build.project.namespace, build.project, build, return_to: request.original_url), method: :post, title: 'Cancel', class: 'btn btn-build' do = icon('remove', class: 'cred') - elsif defined?(allow_retry) && allow_retry && build.retryable? = link_to retry_namespace_project_build_path(build.project.namespace, build.project, build, return_to: request.original_url), method: :post, title: 'Retry', class: 'btn btn-build' do = icon('refresh')