summaryrefslogtreecommitdiff
path: root/lib/gitlab/ci/status
diff options
context:
space:
mode:
authorTiger <twatson@gitlab.com>2019-03-26 17:09:07 +1100
committerTiger <twatson@gitlab.com>2019-04-02 11:04:41 +1100
commitde03a8bcb45f11a50bee071e977274c113e7b39a (patch)
tree5777fee3e2c70cea8b3425232b21c945ee5da2b7 /lib/gitlab/ci/status
parent093629fedc43e8b481c6626765e3fcf0603add17 (diff)
downloadgitlab-ce-de03a8bcb45f11a50bee071e977274c113e7b39a.tar.gz
Detailed status for builds that fail prerequisites
Create FailedUnmetPrerequisites status to allow custom messaging for builds that were unable to be queued due to failing to meet prerequisites (eg. failing to create Kubernetes namespace for deployment).
Diffstat (limited to 'lib/gitlab/ci/status')
-rw-r--r--lib/gitlab/ci/status/build/factory.rb3
-rw-r--r--lib/gitlab/ci/status/build/failed_unmet_prerequisites.rb24
2 files changed, 26 insertions, 1 deletions
diff --git a/lib/gitlab/ci/status/build/factory.rb b/lib/gitlab/ci/status/build/factory.rb
index f7d0715e617..96d05842838 100644
--- a/lib/gitlab/ci/status/build/factory.rb
+++ b/lib/gitlab/ci/status/build/factory.rb
@@ -16,7 +16,8 @@ module Gitlab
Status::Build::Skipped],
[Status::Build::Cancelable,
Status::Build::Retryable],
- [Status::Build::Failed],
+ [Status::Build::FailedUnmetPrerequisites,
+ Status::Build::Failed],
[Status::Build::FailedAllowed,
Status::Build::Unschedule,
Status::Build::Play,
diff --git a/lib/gitlab/ci/status/build/failed_unmet_prerequisites.rb b/lib/gitlab/ci/status/build/failed_unmet_prerequisites.rb
new file mode 100644
index 00000000000..a64f901558d
--- /dev/null
+++ b/lib/gitlab/ci/status/build/failed_unmet_prerequisites.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module Ci
+ module Status
+ module Build
+ class FailedUnmetPrerequisites < Status::Extended
+ def illustration
+ {
+ image: 'illustrations/skipped-job_empty.svg',
+ size: 'svg-430',
+ title: _('Failed to create resources'),
+ content: _('Retry this job in order to create the necessary resources')
+ }
+ end
+
+ def self.matches?(build, _)
+ build.unmet_prerequisites?
+ end
+ end
+ end
+ end
+ end
+end