Skip to content
Snippets Groups Projects

Skipped jobs should be considered successful

Merged Lin Jen-Shin requested to merge all-skipped-equals-success into master
All threads resolved!
2 files
+ 10
8
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -8,7 +8,7 @@ module HasStatus
@@ -8,7 +8,7 @@ module HasStatus
class_methods do
class_methods do
def status_sql
def status_sql
scope = all
scope = exclude_ignored_jobs
builds = scope.select('count(*)').to_sql
builds = scope.select('count(*)').to_sql
created = scope.created.select('count(*)').to_sql
created = scope.created.select('count(*)').to_sql
success = scope.success.select('count(*)').to_sql
success = scope.success.select('count(*)').to_sql
@@ -21,8 +21,8 @@ def status_sql
@@ -21,8 +21,8 @@ def status_sql
deduce_status = "(CASE
deduce_status = "(CASE
WHEN (#{builds})=(#{created}) THEN 'created'
WHEN (#{builds})=(#{created}) THEN 'created'
WHEN (#{builds})=(#{skipped}) THEN 'skipped'
WHEN (#{builds})=(#{success})+(#{ignored}) THEN 'success'
WHEN (#{builds})=(#{success})+(#{ignored})+(#{skipped}) THEN 'success'
WHEN (#{builds})=(#{success})+(#{ignored})+(#{skipped}) THEN 'skipped'
WHEN (#{builds})=(#{created})+(#{pending})+(#{skipped}) THEN 'pending'
WHEN (#{builds})=(#{created})+(#{pending})+(#{skipped}) THEN 'pending'
WHEN (#{builds})=(#{canceled})+(#{success})+(#{ignored})+(#{skipped}) THEN 'canceled'
WHEN (#{builds})=(#{canceled})+(#{success})+(#{ignored})+(#{skipped}) THEN 'canceled'
WHEN (#{running})+(#{pending})+(#{created})>0 THEN 'running'
WHEN (#{running})+(#{pending})+(#{created})>0 THEN 'running'
@@ -68,6 +68,12 @@ def finished_at
@@ -68,6 +68,12 @@ def finished_at
scope :skipped, -> { where(status: 'skipped') }
scope :skipped, -> { where(status: 'skipped') }
scope :running_or_pending, -> { where(status: [:running, :pending]) }
scope :running_or_pending, -> { where(status: [:running, :pending]) }
scope :finished, -> { where(status: [:success, :failed, :canceled]) }
scope :finished, -> { where(status: [:success, :failed, :canceled]) }
 
scope :exclude_ignored_jobs, -> do
 
quoted_when = connection.quote_column_name('when')
 
# We want to ignore skipped manual jobs
 
where("#{quoted_when} <> ? OR status <> ?", 'manual', 'skipped').
 
where("#{quoted_when} <> ? OR status <> ?", 'on_failure', 'skipped')
 
end
end
end
def started?
def started?
Loading