Skip to content
Snippets Groups Projects
Commit caf6b991 authored by Grzegorz Bizon's avatar Grzegorz Bizon
Browse files

Check warnings when building compound status SQL query

parent 51ce9a6c
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -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
Loading
Loading
Loading
Loading
@@ -11,18 +11,21 @@ module HasStatus
 
class_methods do
def status_sql
scope = respond_to?(:exclude_ignored) ? exclude_ignored : all
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
scope_relevant = respond_to?(:exclude_ignored) ? exclude_ignored : all
scope_warnings = respond_to?(:failed_but_allowed) ? failed_but_allowed : none
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'
Loading
Loading
Loading
Loading
@@ -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
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment