From 160ffb6870c39d467bd5efa4170007be18ccd7d2 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Tue, 10 Apr 2018 12:56:52 +0200 Subject: Fix empty state for build that doesn ot have a trace It also adds a fallback that covers other edge cases that might surface later. --- lib/gitlab/ci/status/build/common.rb | 7 +++++++ lib/gitlab/ci/status/build/empty.rb | 21 +++++++++++++++++++++ lib/gitlab/ci/status/build/factory.rb | 3 ++- 3 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 lib/gitlab/ci/status/build/empty.rb (limited to 'lib/gitlab/ci/status') diff --git a/lib/gitlab/ci/status/build/common.rb b/lib/gitlab/ci/status/build/common.rb index c0c7c7f5b5d..639e88ebf1f 100644 --- a/lib/gitlab/ci/status/build/common.rb +++ b/lib/gitlab/ci/status/build/common.rb @@ -3,6 +3,13 @@ module Gitlab module Status module Build module Common + def illustration + { + image: 'illustrations/skipped-job_empty.svg', + size: 'svg-430' + } + end + def has_details? can?(user, :read_build, subject) end diff --git a/lib/gitlab/ci/status/build/empty.rb b/lib/gitlab/ci/status/build/empty.rb new file mode 100644 index 00000000000..3e598877602 --- /dev/null +++ b/lib/gitlab/ci/status/build/empty.rb @@ -0,0 +1,21 @@ +module Gitlab + module Ci + module Status + module Build + class Empty < Status::Extended + def illustration + { + image: 'illustrations/skipped-job_empty.svg', + size: 'svg-430', + title: _('This job does not have a trace.') + } + end + + def self.matches?(build, user) + !build.has_trace? + end + end + end + end + end +end diff --git a/lib/gitlab/ci/status/build/factory.rb b/lib/gitlab/ci/status/build/factory.rb index 2b26ebb45a1..0b42d5edfc1 100644 --- a/lib/gitlab/ci/status/build/factory.rb +++ b/lib/gitlab/ci/status/build/factory.rb @@ -17,7 +17,8 @@ module Gitlab Status::Build::Play, Status::Build::Stop], [Status::Build::Action], - [Status::Build::Retried]] + [Status::Build::Retried], + [Status::Build::Empty]] end def self.common_helpers -- cgit v1.2.1 From 199e31eb24ae314428c2801454f9de676a78496c Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Tue, 10 Apr 2018 13:33:27 +0200 Subject: Extend specs for detailed build extended statuses --- lib/gitlab/ci/status/build/factory.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'lib/gitlab/ci/status') diff --git a/lib/gitlab/ci/status/build/factory.rb b/lib/gitlab/ci/status/build/factory.rb index 0b42d5edfc1..9b3a97a0f0f 100644 --- a/lib/gitlab/ci/status/build/factory.rb +++ b/lib/gitlab/ci/status/build/factory.rb @@ -9,7 +9,8 @@ module Gitlab Status::Build::Canceled, Status::Build::Created, Status::Build::Pending, - Status::Build::Skipped], + Status::Build::Skipped, + Status::Build::Empty], [Status::Build::Cancelable, Status::Build::Retryable], [Status::Build::Failed], @@ -17,8 +18,7 @@ module Gitlab Status::Build::Play, Status::Build::Stop], [Status::Build::Action], - [Status::Build::Retried], - [Status::Build::Empty]] + [Status::Build::Retried]] end def self.common_helpers -- cgit v1.2.1 From 2ea25cbcaff0ca62b0570a129771f08bca532820 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Tue, 10 Apr 2018 14:27:34 +0200 Subject: Revert adding `Empty` extended status to avoid N+1 queries --- lib/gitlab/ci/status/build/common.rb | 3 ++- lib/gitlab/ci/status/build/empty.rb | 21 --------------------- lib/gitlab/ci/status/build/factory.rb | 3 +-- 3 files changed, 3 insertions(+), 24 deletions(-) delete mode 100644 lib/gitlab/ci/status/build/empty.rb (limited to 'lib/gitlab/ci/status') diff --git a/lib/gitlab/ci/status/build/common.rb b/lib/gitlab/ci/status/build/common.rb index 639e88ebf1f..52d2df0a40a 100644 --- a/lib/gitlab/ci/status/build/common.rb +++ b/lib/gitlab/ci/status/build/common.rb @@ -6,7 +6,8 @@ module Gitlab def illustration { image: 'illustrations/skipped-job_empty.svg', - size: 'svg-430' + size: 'svg-430', + title: _('This job does not have a trace.'), } end diff --git a/lib/gitlab/ci/status/build/empty.rb b/lib/gitlab/ci/status/build/empty.rb deleted file mode 100644 index 3e598877602..00000000000 --- a/lib/gitlab/ci/status/build/empty.rb +++ /dev/null @@ -1,21 +0,0 @@ -module Gitlab - module Ci - module Status - module Build - class Empty < Status::Extended - def illustration - { - image: 'illustrations/skipped-job_empty.svg', - size: 'svg-430', - title: _('This job does not have a trace.') - } - end - - def self.matches?(build, user) - !build.has_trace? - end - end - end - end - end -end diff --git a/lib/gitlab/ci/status/build/factory.rb b/lib/gitlab/ci/status/build/factory.rb index 9b3a97a0f0f..2b26ebb45a1 100644 --- a/lib/gitlab/ci/status/build/factory.rb +++ b/lib/gitlab/ci/status/build/factory.rb @@ -9,8 +9,7 @@ module Gitlab Status::Build::Canceled, Status::Build::Created, Status::Build::Pending, - Status::Build::Skipped, - Status::Build::Empty], + Status::Build::Skipped], [Status::Build::Cancelable, Status::Build::Retryable], [Status::Build::Failed], -- cgit v1.2.1 From 8196794c1efb5492a7df24337d2fc08fe76cc8f7 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Tue, 10 Apr 2018 14:37:08 +0200 Subject: Add a test for job empty state with missing trace --- lib/gitlab/ci/status/build/common.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/gitlab/ci/status') diff --git a/lib/gitlab/ci/status/build/common.rb b/lib/gitlab/ci/status/build/common.rb index 52d2df0a40a..c1fc70ac266 100644 --- a/lib/gitlab/ci/status/build/common.rb +++ b/lib/gitlab/ci/status/build/common.rb @@ -7,7 +7,7 @@ module Gitlab { image: 'illustrations/skipped-job_empty.svg', size: 'svg-430', - title: _('This job does not have a trace.'), + title: _('This job does not have a trace.') } end -- cgit v1.2.1