From 30d7535b17db0b450f56ce0b9745fa04e403a5e3 Mon Sep 17 00:00:00 2001
From: Chad Woolley <cwoolley@gitlab.com>
Date: Sat, 9 Oct 2021 12:43:46 -0700
Subject: [PATCH] Revert "Add spring support to rails/rake binstubs"

This reverts commit 28f82411be35519cea410ac494708c78f7940742.
---
 .gitlab/ci/static-analysis.gitlab-ci.yml | 14 +++++++++++---
 bin/rails                                |  5 -----
 bin/rake                                 |  5 -----
 lib/gitlab/popen/runner.rb               | 17 ++---------------
 lib/tasks/lint.rake                      |  7 +++++++
 5 files changed, 20 insertions(+), 28 deletions(-)

diff --git a/.gitlab/ci/static-analysis.gitlab-ci.yml b/.gitlab/ci/static-analysis.gitlab-ci.yml
index 79f578d09dcbb..85df68e903065 100644
--- a/.gitlab/ci/static-analysis.gitlab-ci.yml
+++ b/.gitlab/ci/static-analysis.gitlab-ci.yml
@@ -24,11 +24,8 @@ static-analysis:
   extends:
     - .static-analysis-base
     - .static-analysis:rules:ee-and-foss
-    - .use-pg12
   stage: test
   parallel: 4
-  variables:
-    SETUP_DB: "true"
   script:
     - run_timed_command "retry yarn install --frozen-lockfile"
     - scripts/static-analysis
@@ -38,6 +35,17 @@ static-analysis:
     paths:
       - tmp/feature_flags/
 
+static-analysis-with-database:
+  extends:
+    - .static-analysis-base
+    - .static-analysis:rules:ee-and-foss
+    - .use-pg12
+  stage: test
+  script:
+    - bundle exec rake lint:static_verification_with_database
+  variables:
+    SETUP_DB: "true"
+
 static-analysis as-if-foss:
   extends:
     - static-analysis
diff --git a/bin/rails b/bin/rails
index 5badb2fde0cb7..0739660237747 100755
--- a/bin/rails
+++ b/bin/rails
@@ -1,9 +1,4 @@
 #!/usr/bin/env ruby
-begin
-  load File.expand_path('../spring', __FILE__)
-rescue LoadError => e
-  raise unless e.message.include?('spring')
-end
 APP_PATH = File.expand_path('../config/application', __dir__)
 require_relative '../config/boot'
 require 'rails/commands'
diff --git a/bin/rake b/bin/rake
index d87d5f5781045..17240489f6483 100755
--- a/bin/rake
+++ b/bin/rake
@@ -1,9 +1,4 @@
 #!/usr/bin/env ruby
-begin
-  load File.expand_path('../spring', __FILE__)
-rescue LoadError => e
-  raise unless e.message.include?('spring')
-end
 require_relative '../config/boot'
 require 'rake'
 Rake.application.run
diff --git a/lib/gitlab/popen/runner.rb b/lib/gitlab/popen/runner.rb
index 60c2082844c1e..cd9ad270cd80c 100644
--- a/lib/gitlab/popen/runner.rb
+++ b/lib/gitlab/popen/runner.rb
@@ -31,7 +31,7 @@ def all_success?
       end
 
       def all_stderr_empty?
-        results.all? { |result| stderr_empty_ignoring_spring(result) }
+        results.all? { |result| result.stderr.empty? }
       end
 
       def failed_results
@@ -40,22 +40,9 @@ def failed_results
 
       def warned_results
         results.select do |result|
-          result.status.success? && !stderr_empty_ignoring_spring(result)
+          result.status.success? && !result.stderr.empty?
         end
       end
-
-      private
-
-      # NOTE: This is sometimes required instead of just calling `result.stderr.empty?`, if we
-      # want to ignore the spring "Running via Spring preloader..." output to STDERR.
-      # The `Spring.quiet=true` method which spring supports doesn't work, because it doesn't
-      # work to make it quiet when using spring binstubs (the STDERR is printed by `bin/spring`
-      # itself when first required, so there's no opportunity to set Spring.quiet=true).
-      # This should probably be opened as a bug against Spring, with a pull request to support a
-      # `SPRING_QUIET` env var as well.
-      def stderr_empty_ignoring_spring(result)
-        result.stderr.empty? || result.stderr =~ /\ARunning via Spring preloader in process [0-9]+\Z/
-      end
     end
   end
 end
diff --git a/lib/tasks/lint.rake b/lib/tasks/lint.rake
index 7d1721f1df8d3..62d31803f6ee5 100644
--- a/lib/tasks/lint.rake
+++ b/lib/tasks/lint.rake
@@ -12,6 +12,13 @@ unless Rails.env.production?
       dev:load
     ] do
       Gitlab::Utils::Override.verify!
+    end
+
+    desc "GitLab | Lint | Static verification with database"
+    task static_verification_with_database: %w[
+      lint:static_verification_env
+      dev:load
+    ] do
       Gitlab::Utils::DelegatorOverride.verify!
     end
 
-- 
GitLab