From de8b93bbff65844438d7dfbde178746c3585bd92 Mon Sep 17 00:00:00 2001
From: Grzegorz Bizon <grzesiek.bizon@gmail.com>
Date: Thu, 7 Jul 2016 12:56:00 +0200
Subject: [PATCH] Improve validation of CI config entry if composite

---
 lib/gitlab/ci/config/node/entry.rb | 12 ++++--------
 lib/gitlab/ci/config/node/jobs.rb  |  4 ----
 2 files changed, 4 insertions(+), 12 deletions(-)

diff --git a/lib/gitlab/ci/config/node/entry.rb b/lib/gitlab/ci/config/node/entry.rb
index 8fda37a8922..97e17b89c40 100644
--- a/lib/gitlab/ci/config/node/entry.rb
+++ b/lib/gitlab/ci/config/node/entry.rb
@@ -20,12 +20,8 @@ module Gitlab
           end
 
           def process!
-            return if leaf?
-            return unless valid?
-
-            compose!
-            process_nodes!
-            @validator.validate(:processed)
+            compose! unless leaf?
+            @validator.validate(:processed) if valid?
           end
 
           def leaf?
@@ -90,12 +86,12 @@ module Gitlab
           private
 
           def compose!
+            return unless valid?
+
             nodes.each do |key, essence|
               @nodes[key] = create_node(key, essence)
             end
-          end
 
-          def process_nodes!
             @nodes.each_value(&:process!)
           end
 
diff --git a/lib/gitlab/ci/config/node/jobs.rb b/lib/gitlab/ci/config/node/jobs.rb
index 1cd2dc8f5b3..71893ba1d88 100644
--- a/lib/gitlab/ci/config/node/jobs.rb
+++ b/lib/gitlab/ci/config/node/jobs.rb
@@ -27,10 +27,6 @@ module Gitlab
             @nodes.values.any?(&:relevant?)
           end
 
-          def leaf?
-            false
-          end
-
           private
 
           def create_node(key, value)
-- 
GitLab