Check warnings when building compound status SQL query
This commit is contained in:
parent
51ce9a6caa
commit
caf6b9918e
|
@ -103,12 +103,6 @@ class CommitStatus < ActiveRecord::Base
|
|||
end
|
||||
end
|
||||
|
||||
def self.status
|
||||
super.tap do |status|
|
||||
return 'success' if status == 'skipped' && all.failed_but_allowed.any?
|
||||
end
|
||||
end
|
||||
|
||||
def locking_enabled?
|
||||
status_changed?
|
||||
end
|
||||
|
|
|
@ -11,18 +11,21 @@ module HasStatus
|
|||
|
||||
class_methods do
|
||||
def status_sql
|
||||
scope = respond_to?(:exclude_ignored) ? exclude_ignored : all
|
||||
scope_relevant = respond_to?(:exclude_ignored) ? exclude_ignored : all
|
||||
scope_warnings = respond_to?(:failed_but_allowed) ? failed_but_allowed : none
|
||||
|
||||
builds = scope.select('count(*)').to_sql
|
||||
created = scope.created.select('count(*)').to_sql
|
||||
success = scope.success.select('count(*)').to_sql
|
||||
manual = scope.manual.select('count(*)').to_sql
|
||||
pending = scope.pending.select('count(*)').to_sql
|
||||
running = scope.running.select('count(*)').to_sql
|
||||
skipped = scope.skipped.select('count(*)').to_sql
|
||||
canceled = scope.canceled.select('count(*)').to_sql
|
||||
builds = scope_relevant.select('count(*)').to_sql
|
||||
created = scope_relevant.created.select('count(*)').to_sql
|
||||
success = scope_relevant.success.select('count(*)').to_sql
|
||||
manual = scope_relevant.manual.select('count(*)').to_sql
|
||||
pending = scope_relevant.pending.select('count(*)').to_sql
|
||||
running = scope_relevant.running.select('count(*)').to_sql
|
||||
skipped = scope_relevant.skipped.select('count(*)').to_sql
|
||||
canceled = scope_relevant.canceled.select('count(*)').to_sql
|
||||
warnings = scope_warnings.select('count(*) > 0').to_sql.presence || 'false'
|
||||
|
||||
"(CASE
|
||||
WHEN (#{builds})=(#{skipped}) AND (#{warnings}) THEN 'success'
|
||||
WHEN (#{builds})=(#{skipped}) THEN 'skipped'
|
||||
WHEN (#{builds})=(#{success}) THEN 'success'
|
||||
WHEN (#{builds})=(#{created}) THEN 'created'
|
||||
|
|
|
@ -309,7 +309,7 @@ describe CommitStatus, :models do
|
|||
|
||||
context 'when using a scope to select latest statuses' do
|
||||
before do
|
||||
create_status(name: 'test', status: 'failed')
|
||||
create_status(name: 'test', retried: true, status: 'failed')
|
||||
create_status(allow_failure: true, name: 'test', status: 'failed')
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue