diff --git a/lib/ci/gitlab_ci_yaml_processor.rb b/lib/ci/gitlab_ci_yaml_processor.rb
index ab77d4df8419f7dced1b50ccf76b9961e96512df..f0710690985fd38779650f0451fc81345b94caf3 100644
--- a/lib/ci/gitlab_ci_yaml_processor.rb
+++ b/lib/ci/gitlab_ci_yaml_processor.rb
@@ -26,7 +26,6 @@ module Ci
       end
 
       initial_parsing
-      validate!
     rescue Gitlab::Ci::Config::Loader::FormatError => e
       raise ValidationError, e.message
     end
@@ -71,6 +70,10 @@ module Ci
       @ci_config.jobs.each do |name, param|
         add_job(name, param)
       end
+
+      @jobs.each do |name, job|
+        validate_job!(name, job)
+      end
     end
 
     def add_job(name, job)
@@ -108,14 +111,6 @@ module Ci
       }
     end
 
-    def validate!
-      @jobs.each do |name, job|
-        validate_job!(name, job)
-      end
-
-      true
-    end
-
     def validate_job!(name, job)
       validate_job_name!(name)
       validate_job_keys!(name, job)