summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-06-06 11:54:54 +0200
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-06-06 11:59:25 +0200
commita3c0745514ad98df1fbb8a6142f6cc50df76edae (patch)
tree3c20328efc1bde7795aba52f3a5613a7f15105d2 /lib
parent6dbd1c86a82156dd5ad39b0e2ad119a493dadeae (diff)
downloadgitlab-ce-a3c0745514ad98df1fbb8a6142f6cc50df76edae.tar.gz
Collect errors from all nodes in new CI config
Diffstat (limited to 'lib')
-rw-r--r--lib/gitlab/ci/config/node/entry.rb18
1 files changed, 15 insertions, 3 deletions
diff --git a/lib/gitlab/ci/config/node/entry.rb b/lib/gitlab/ci/config/node/entry.rb
index 3220b01ca1a..45475316539 100644
--- a/lib/gitlab/ci/config/node/entry.rb
+++ b/lib/gitlab/ci/config/node/entry.rb
@@ -5,7 +5,7 @@ module Gitlab
class Entry
include Config::ValidationHelpers
- attr_reader :value, :config, :parent, :nodes, :errors
+ attr_reader :value, :parent
def initialize(value, config, parent = nil)
@value = value
@@ -21,8 +21,20 @@ module Gitlab
@nodes[key] = entry.new(@value[key], config, self)
end
- @nodes.values.each(&:process!)
- @nodes.values.each(&:validate!)
+ nodes.each(&:process!)
+ nodes.each(&:validate!)
+ end
+
+ def errors
+ @errors + nodes.map(&:errors).flatten
+ end
+
+ def valid?
+ errors.none?
+ end
+
+ def nodes
+ @nodes.values
end
def keys