diff --git a/CHANGELOG b/CHANGELOG
index d38646ece67eca53db81475098841b189494e0a6..473acdaa5eee40dacb58d7787c44867415a101f6 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -22,6 +22,7 @@ v 8.6.0 (unreleased)
   - Rewrite logo to simplify SVG code (Sean Lang)
   - Allow to use YAML anchors when parsing the `.gitlab-ci.yml` (Pascal Bach)
   - Ignore jobs that start with `.` (hidden jobs)
+  - Hide builds from project's settings when the feature is disabled
   - Allow to pass name of created artifacts archive in `.gitlab-ci.yml`
   - Refactor and greatly improve search performance
   - Add support for cross-project label references
diff --git a/app/assets/javascripts/project_new.js.coffee b/app/assets/javascripts/project_new.js.coffee
index fecdb9fc2e773436fe8ac193903d8d97ed2cf533..63dee4ed5d79ea823e036070c58b1a9af680bf16 100644
--- a/app/assets/javascripts/project_new.js.coffee
+++ b/app/assets/javascripts/project_new.js.coffee
@@ -3,3 +3,16 @@ class @ProjectNew
     $('.project-edit-container').on 'ajax:before', =>
       $('.project-edit-container').hide()
       $('.save-project-loader').show()
+    @toggleSettings()
+    @toggleSettingsOnclick()
+
+
+  toggleSettings: ->
+    checked = $("#project_builds_enabled").prop("checked")
+    if checked
+      $('.builds-feature').show()
+    else
+      $('.builds-feature').hide()
+
+  toggleSettingsOnclick: ->
+    $("#project_builds_enabled").on 'click', @toggleSettings
diff --git a/app/views/projects/_builds_settings.html.haml b/app/views/projects/_builds_settings.html.haml
new file mode 100644
index 0000000000000000000000000000000000000000..95ab9ecf3e842a3cb9c418e57300eaaa083ab8cf
--- /dev/null
+++ b/app/views/projects/_builds_settings.html.haml
@@ -0,0 +1,60 @@
+%fieldset.builds-feature
+  %legend
+    Builds:
+  .form-group
+    .col-sm-offset-2.col-sm-10
+      %p Get recent application code using the following command:
+      .radio
+        = f.label :build_allow_git_fetch_false do
+          = f.radio_button :build_allow_git_fetch, 'false'
+          %strong git clone
+          %br
+          %span.descr Slower but makes sure you have a clean dir before every build
+      .radio
+        = f.label :build_allow_git_fetch_true do
+          = f.radio_button :build_allow_git_fetch, 'true'
+          %strong git fetch
+          %br
+          %span.descr Faster
+
+  .form-group
+    = f.label :build_timeout_in_minutes, 'Timeout', class: 'control-label'
+    .col-sm-10
+      = f.number_field :build_timeout_in_minutes, class: 'form-control', min: '0'
+      %p.help-block per build in minutes
+  .form-group
+    = f.label :build_coverage_regex, "Test coverage parsing", class: 'control-label'
+    .col-sm-10
+      .input-group
+        %span.input-group-addon /
+        = f.text_field :build_coverage_regex, class: 'form-control', placeholder: '\(\d+.\d+\%\) covered'
+        %span.input-group-addon /
+      %p.help-block
+        We will use this regular expression to find test coverage output in build trace.
+        Leave blank if you want to disable this feature
+      .bs-callout.bs-callout-info
+        %p Below are examples of regex for existing tools:
+        %ul
+          %li
+            Simplecov (Ruby) -
+            %code \(\d+.\d+\%\) covered
+          %li
+            pytest-cov (Python) -
+            %code \d+\%\s*$
+          %li
+            phpunit --coverage-text --colors=never (PHP) -
+            %code ^\s*Lines:\s*\d+.\d+\%
+
+  .form-group
+    .col-sm-offset-2.col-sm-10
+      .checkbox
+        = f.label :public_builds do
+          = f.check_box :public_builds
+          %strong Public builds
+        .help-block Allow everyone to access builds for Public and Internal projects
+
+  .form-group
+    = f.label :runners_token, "Runners token", class: 'control-label'
+    .col-sm-10
+      = f.text_field :runners_token, class: "form-control", placeholder: 'xEeFCaDAB89'
+      %p.help-block The secure token used to checkout project.
diff --git a/app/views/projects/edit.html.haml b/app/views/projects/edit.html.haml
index f2e56081afe949aba3a562d9e708cff6dab1d127..6d872cd0b218839818a6ff258d261b8d4cec86b9 100644
--- a/app/views/projects/edit.html.haml
+++ b/app/views/projects/edit.html.haml
@@ -84,6 +84,8 @@
                     %br
                     %span.descr Share code pastes with others out of git repository
 
+          = render 'builds_settings', f: f
+
           %fieldset.features
             %legend
               Project avatar:
@@ -110,69 +112,6 @@
                   %hr
                   = link_to 'Remove avatar', namespace_project_avatar_path(@project.namespace, @project), data: { confirm: "Project avatar will be removed. Are you sure?"}, method: :delete, class: "btn btn-remove btn-sm remove-avatar"
 
-          %fieldset.features
-            %legend
-              Continuous Integration
-            .form-group
-              .col-sm-offset-2.col-sm-10
-                %p Get recent application code using the following command:
-                .radio
-                  = f.label :build_allow_git_fetch_false do
-                    = f.radio_button :build_allow_git_fetch, 'false'
-                    %strong git clone
-                    %br
-                    %span.descr Slower but makes sure you have a clean dir before every build
-                .radio
-                  = f.label :build_allow_git_fetch_true do
-                    = f.radio_button :build_allow_git_fetch, 'true'
-                    %strong git fetch
-                    %br
-                    %span.descr Faster
-
-            .form-group
-              = f.label :build_timeout_in_minutes, 'Timeout', class: 'control-label'
-              .col-sm-10
-                = f.number_field :build_timeout_in_minutes, class: 'form-control', min: '0'
-                %p.help-block per build in minutes
-            .form-group
-              = f.label :build_coverage_regex, "Test coverage parsing", class: 'control-label'
-              .col-sm-10
-                .input-group
-                  %span.input-group-addon /
-                  = f.text_field :build_coverage_regex, class: 'form-control', placeholder: '\(\d+.\d+\%\) covered'
-                  %span.input-group-addon /
-                %p.help-block
-                  We will use this regular expression to find test coverage output in build trace.
-                  Leave blank if you want to disable this feature
-                .bs-callout.bs-callout-info
-                  %p Below are examples of regex for existing tools:
-                  %ul
-                    %li
-                      Simplecov (Ruby) -
-                      %code \(\d+.\d+\%\) covered
-                    %li
-                      pytest-cov (Python) -
-                      %code \d+\%\s*$
-                    %li
-                      phpunit --coverage-text --colors=never (PHP) -
-                      %code ^\s*Lines:\s*\d+.\d+\%
-
-              .form-group
-                .col-sm-offset-2.col-sm-10
-                  .checkbox
-                    = f.label :public_builds do
-                      = f.check_box :public_builds
-                      %strong Public builds
-                    .help-block Allow everyone to access builds for Public and Internal projects
-
-          %fieldset.features
-            %legend
-              Advanced settings
-            .form-group
-              = f.label :runners_token, "CI token", class: 'control-label'
-              .col-sm-10
-                = f.text_field :runners_token, class: "form-control", placeholder: 'xEeFCaDAB89'
-                %p.help-block The secure token used to checkout project.
 
           .form-actions
             = f.submit 'Save changes', class: "btn btn-save"