Update handling of skipped status

This commit is contained in:
Kamil Trzcinski 2016-04-13 20:51:03 +02:00
parent ed30cc04ee
commit 21136baa77
3 changed files with 18 additions and 17 deletions

View file

@ -116,7 +116,7 @@ module Ci
end
def retried?
!self.commit.latest.include?(self)
!self.commit.statuses.latest.include?(self)
end
def retry

View file

@ -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

View file

@ -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