Commit 5c9ac560 authored by Lin Jen-Shin's avatar Lin Jen-Shin

Introduce all_state_names so that we could avoid NOT IN

parent aafb0171
...@@ -32,8 +32,8 @@ class CommitStatus < ActiveRecord::Base ...@@ -32,8 +32,8 @@ class CommitStatus < ActiveRecord::Base
scope :exclude_ignored, -> do scope :exclude_ignored, -> do
quoted_when = connection.quote_column_name('when') quoted_when = connection.quote_column_name('when')
# We want to ignore failed_but_allowed jobs # We want to ignore failed_but_allowed jobs
where("allow_failure = ? OR status NOT IN (?)", where("allow_failure = ? OR status IN (?)",
false, [:failed, :canceled]). false, all_state_names - [:failed, :canceled]).
# We want to ignore skipped manual jobs # We want to ignore skipped manual jobs
where("#{quoted_when} <> ? OR status <> ?", 'manual', 'skipped'). where("#{quoted_when} <> ? OR status <> ?", 'manual', 'skipped').
# We want to ignore skipped on_failure # We want to ignore skipped on_failure
......
...@@ -43,6 +43,10 @@ module HasStatus ...@@ -43,6 +43,10 @@ module HasStatus
def finished_at def finished_at
all.maximum(:finished_at) all.maximum(:finished_at)
end end
def all_state_names
state_machines.values.flat_map(&:states).flat_map { |s| s.map(&:name) }
end
end end
included do 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