Commit 21136baa authored by Kamil Trzcinski's avatar Kamil Trzcinski

Update handling of skipped status

parent ed30cc04
......@@ -116,7 +116,7 @@ module Ci
end
def retried?
!self.commit.latest.include?(self)
!self.commit.statuses.latest.include?(self)
end
def retry
......
......@@ -125,16 +125,12 @@ module Ci
end
end
def latest
statuses.latest
end
def retried
@retried ||= (statuses.order(id: :desc) - statuses.latest)
end
def coverage
coverage_array = latest.map(&:coverage).compact
coverage_array = statuses.latest.map(&:coverage).compact
if coverage_array.size >= 1
'%.2f' % (coverage_array.reduce(:+) / coverage_array.size)
end
......@@ -169,18 +165,15 @@ module Ci
private
def update_state
reload
self.status = if yaml_errors.present?
'failed'
statuses.reload
self.status = if yaml_errors.blank?
statuses.latest.status || 'skipped'
else
latest.status
'failed'
end
self.started_at = statuses.minimum(:started_at)
self.finished_at = statuses.maximum(:finished_at)
self.duration = begin
duration_array = latest.map(&:duration).compact
duration_array.reduce(:+).to_i
end
self.started_at = statuses.started_at
self.finished_at = statuses.finished_at
self.duration = statuses.latest.duration
save
end
......
......@@ -15,7 +15,7 @@ module CiStatus
skipped = all.skipped.select('count(*)').to_sql
deduce_status = "(CASE
WHEN (#{builds})=0 THEN 'skipped'
WHEN (#{builds})=0 THEN NULL
WHEN (#{builds})=(#{success})+(#{ignored}) THEN 'success'
WHEN (#{builds})=(#{pending}) THEN 'pending'
WHEN (#{builds})=(#{canceled}) THEN 'canceled'
......@@ -35,6 +35,14 @@ module CiStatus
duration_array = all.map(&:duration).compact
duration_array.reduce(:+).to_i
end
def started_at
all.minimum(:started_at)
end
def finished_at
all.minimum(:finished_at)
end
end
included do
......
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