diff --git a/app/controllers/ci/lints_controller.rb b/app/controllers/ci/lints_controller.rb
index e06d12cfce16ce5fe0784fb7566045a28341630e..78012960252ee3dea33d79028cfb3c4d7a39b696 100644
--- a/app/controllers/ci/lints_controller.rb
+++ b/app/controllers/ci/lints_controller.rb
@@ -14,6 +14,7 @@ module Ci
         @config_processor = Ci::GitlabCiYamlProcessor.new(@content)
         @stages = @config_processor.stages
         @builds = @config_processor.builds
+        @jobs = @config_processor.jobs
       end
     rescue
       @error = 'Undefined error'
diff --git a/app/services/ci/create_pipeline_builds_service.rb b/app/services/ci/create_pipeline_builds_service.rb
index 3fc707b1e148d5117863e197eab1b66939ec11d3..005014fa1ded2e94b350f06aad0ec2bf1613106f 100644
--- a/app/services/ci/create_pipeline_builds_service.rb
+++ b/app/services/ci/create_pipeline_builds_service.rb
@@ -13,11 +13,6 @@ module Ci
     private
 
     def create_build(build_attributes)
-      build_attributes = build_attributes.slice(
-        :stage_idx, :stage, :commands, :tag_list, :name, :when, :allow_failure,
-        :environment, :yaml_variables, :options
-      )
-
       build_attributes = build_attributes.merge(
         pipeline: pipeline,
         project: pipeline.project,
@@ -26,7 +21,6 @@ module Ci
         user: current_user,
         trigger_request: trigger_request
       )
-
       pipeline.builds.create(build_attributes)
     end
 
diff --git a/app/views/ci/lints/_create.html.haml b/app/views/ci/lints/_create.html.haml
index 733c5d0b7fe6b2266bde582592171caa843eed52..342259226a224b61120bc43d8ad4f48a1b55ae74 100644
--- a/app/views/ci/lints/_create.html.haml
+++ b/app/views/ci/lints/_create.html.haml
@@ -21,13 +21,13 @@
 
                 %br
                 %b Tag list:
-                = build[:tag_list] && build[:tag_list].join(", ")
+                = build[:tag_list] && build[:tag_list].to_a.join(", ")
                 %br
                 %b Refs only:
-                = build[:only] && build[:only].join(", ")
+                = @jobs[build[:name].to_sym][:only] && @jobs[build[:name].to_sym][:only].to_a.join(", ")
                 %br
                 %b Refs except:
-                = build[:except] && build[:except].join(", ")
+                = @jobs[build[:name].to_sym][:except] && @jobs[build[:name].to_sym][:except].to_a.join(", ")
                 %br
                 %b Environment:
                 = build[:environment]
diff --git a/lib/ci/gitlab_ci_yaml_processor.rb b/lib/ci/gitlab_ci_yaml_processor.rb
index b61388d6ea7e11b0fe8e7f1e646e506c9d07d142..2fd1fced65c619d8cccaff18e4321a8a549eadb8 100644
--- a/lib/ci/gitlab_ci_yaml_processor.rb
+++ b/lib/ci/gitlab_ci_yaml_processor.rb
@@ -4,7 +4,7 @@ module Ci
 
     include Gitlab::Ci::Config::Node::LegacyValidationHelpers
 
-    attr_reader :path, :cache, :stages
+    attr_reader :path, :cache, :stages, :jobs
 
     def initialize(config, path = nil)
       @ci_config = Gitlab::Ci::Config.new(config)
@@ -59,8 +59,6 @@ module Ci
         tag_list: job[:tags] || [],
         name: job[:name].to_s,
         allow_failure: job[:allow_failure] || false,
-        only: job[:only],
-        except: job[:except],
         when: job[:when] || 'on_success',
         environment: job[:environment_name],
         yaml_variables: yaml_variables(name),
diff --git a/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb b/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb
index 317259f0c273ad18d327f797fe87aa8dcba9ec2a..6dedd25e9d321fb50c0f9365b472b1b7770c392f 100644
--- a/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb
+++ b/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb
@@ -26,9 +26,7 @@ module Ci
           allow_failure: false,
           when: "on_success",
           environment: nil,
-          yaml_variables: [],
-          only: nil,
-          except: nil
+          yaml_variables: []
         })
       end
 
@@ -445,9 +443,7 @@ module Ci
           allow_failure: false,
           when: "on_success",
           environment: nil,
-          yaml_variables: [],
-          only: nil,
-          except: nil
+          yaml_variables: []
         })
       end
 
@@ -475,9 +471,7 @@ module Ci
           allow_failure: false,
           when: "on_success",
           environment: nil,
-          yaml_variables: [],
-          only: nil,
-          except: nil
+          yaml_variables: []
         })
       end
     end
@@ -722,9 +716,7 @@ module Ci
           when: "on_success",
           allow_failure: false,
           environment: nil,
-          yaml_variables: [],
-          only: nil,
-          except: nil
+          yaml_variables: []
         })
       end
 
@@ -867,9 +859,7 @@ module Ci
             when: "on_success",
             allow_failure: false,
             environment: nil,
-            yaml_variables: [],
-            only: nil,
-            except: nil
+            yaml_variables: []
           })
         end
       end
@@ -914,9 +904,7 @@ module Ci
             when: "on_success",
             allow_failure: false,
             environment: nil,
-            yaml_variables: [],
-            only: nil,
-            except: nil
+            yaml_variables: []
           })
           expect(subject.second).to eq({
             stage: "build",
@@ -928,9 +916,7 @@ module Ci
             when: "on_success",
             allow_failure: false,
             environment: nil,
-            yaml_variables: [],
-            only: nil,
-            except: nil
+            yaml_variables: []
           })
         end
       end
diff --git a/spec/views/ci/lints/show.html.haml_spec.rb b/spec/views/ci/lints/show.html.haml_spec.rb
index be41134d12a148df44f51d734226779b1750d744..620fb0e4821cfcccba02b4b787872d8db059996d 100644
--- a/spec/views/ci/lints/show.html.haml_spec.rb
+++ b/spec/views/ci/lints/show.html.haml_spec.rb
@@ -20,6 +20,7 @@ describe 'ci/lints/show' do
       assign(:status, true)
       assign(:builds, config_processor.builds)
       assign(:stages, config_processor.stages)
+      assign(:jobs, config_processor.jobs)
     end
 
     it 'shows the correct values' do
@@ -32,4 +33,19 @@ describe 'ci/lints/show' do
       expect(rendered).to have_content('When: on_success')
     end
   end
+
+  context 'when the content is invalid' do
+    before do
+      assign(:status, false)
+      assign(:error, 'Undefined error')
+    end
+
+    it 'shows error message' do
+      render
+
+      expect(rendered).to have_content('Status: syntax is incorrec')
+      expect(rendered).to have_content('Error: Undefined error')
+      expect(rendered).not_to have_content('Tag list:')
+    end
+  end
 end