Fix builds_without_retry
This commit is contained in:
parent
317a746954
commit
361dc3641d
3 changed files with 10 additions and 13 deletions
|
@ -47,7 +47,7 @@ module Ci
|
|||
scope :failed, ->() { where(status: "failed") }
|
||||
scope :unstarted, ->() { where(runner_id: nil) }
|
||||
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 :for_ref, ->(ref) { where(ref: ref) }
|
||||
|
||||
|
|
|
@ -114,14 +114,11 @@ module Ci
|
|||
end
|
||||
|
||||
def builds_without_retry
|
||||
@builds_without_retry ||=
|
||||
begin
|
||||
grouped_builds = builds.group_by(&:name)
|
||||
latest_builds = grouped_builds.map do |name, builds|
|
||||
builds.sort_by(&:id).last
|
||||
end
|
||||
latest_builds.sort_by(&:stage_idx)
|
||||
end
|
||||
builds.latest
|
||||
end
|
||||
|
||||
def builds_without_retry_for_ref(ref)
|
||||
builds.for_ref(ref).latest
|
||||
end
|
||||
|
||||
def retried_builds
|
||||
|
@ -181,7 +178,7 @@ module Ci
|
|||
end
|
||||
|
||||
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
|
||||
|
||||
def finished_at
|
||||
|
@ -198,7 +195,7 @@ module Ci
|
|||
end
|
||||
|
||||
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
|
||||
|
||||
def config_processor
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#up-build-trace
|
||||
- if @commit.matrix_for_ref?(@build.ref)
|
||||
%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) }
|
||||
= link_to ci_project_build_url(@project, build) do
|
||||
= ci_icon_for_status(build.status)
|
||||
|
@ -12,7 +12,7 @@
|
|||
= 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
|
||||
%a
|
||||
Build ##{@build.id}
|
||||
|
|
Loading…
Reference in a new issue