Commit 361dc364 authored by Kamil Trzcinski's avatar Kamil Trzcinski

Fix builds_without_retry

parent 317a7469
...@@ -47,7 +47,7 @@ module Ci ...@@ -47,7 +47,7 @@ module Ci
scope :failed, ->() { where(status: "failed") } scope :failed, ->() { where(status: "failed") }
scope :unstarted, ->() { where(runner_id: nil) } scope :unstarted, ->() { where(runner_id: nil) }
scope :running_or_pending, ->() { where(status:[:running, :pending]) } scope :running_or_pending, ->() { where(status:[:running, :pending]) }
scope :latest, ->() { group(:name).order(stage_idx: :asc, created_at: :desc) } scope :latest, ->() { where(id: unscope(:select).select('max(id)').group(:name)).order(stage_idx: :asc) }
scope :ignore_failures, ->() { where(allow_failure: false) } scope :ignore_failures, ->() { where(allow_failure: false) }
scope :for_ref, ->(ref) { where(ref: ref) } scope :for_ref, ->(ref) { where(ref: ref) }
......
...@@ -114,14 +114,11 @@ module Ci ...@@ -114,14 +114,11 @@ module Ci
end end
def builds_without_retry def builds_without_retry
@builds_without_retry ||= builds.latest
begin end
grouped_builds = builds.group_by(&:name)
latest_builds = grouped_builds.map do |name, builds| def builds_without_retry_for_ref(ref)
builds.sort_by(&:id).last builds.for_ref(ref).latest
end
latest_builds.sort_by(&:stage_idx)
end
end end
def retried_builds def retried_builds
...@@ -181,7 +178,7 @@ module Ci ...@@ -181,7 +178,7 @@ module Ci
end end
def duration_for_ref(ref) def duration_for_ref(ref)
builds_without_retry.for_ref(ref).select(&:duration).sum(&:duration).to_i builds_without_retry_for_ref(ref).select(&:duration).sum(&:duration).to_i
end end
def finished_at def finished_at
...@@ -198,7 +195,7 @@ module Ci ...@@ -198,7 +195,7 @@ module Ci
end end
def matrix_for_ref?(ref) def matrix_for_ref?(ref)
builds_without_retry.for_ref(ref).pluck(:id).size > 1 builds_without_retry_for_ref(ref).pluck(:id).size > 1
end end
def config_processor def config_processor
......
#up-build-trace #up-build-trace
- if @commit.matrix_for_ref?(@build.ref) - if @commit.matrix_for_ref?(@build.ref)
%ul.center-top-menu %ul.center-top-menu
- @commit.builds_without_retry.for_ref(build.ref).each do |build| - @commit.builds_without_retry_for_ref(build.ref).each do |build|
%li{class: ('active' if build == @build) } %li{class: ('active' if build == @build) }
= link_to ci_project_build_url(@project, build) do = link_to ci_project_build_url(@project, build) do
= ci_icon_for_status(build.status) = ci_icon_for_status(build.status)
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
= build.id = build.id
- unless @commit.builds_without_retry.for_ref(@build.ref).include?(@build) - unless @commit.builds_without_retry_for_ref(@build.ref).include?(@build)
%li.active %li.active
%a %a
Build ##{@build.id} Build ##{@build.id}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment