diff --git a/scripts/static-analysis b/scripts/static-analysis
index 602cd847a71e23ca5c3bbaafd464161b1dae6aa9..b7f7100c3651082fa20f765aeb00a0b765b635b8 100755
--- a/scripts/static-analysis
+++ b/scripts/static-analysis
@@ -26,17 +26,35 @@ def emit_errors(static_analysis)
   end
 end
 
-tasks = [
-  %w[bin/rake lint:all],
-  %w[bundle exec license_finder],
-  %w[yarn run eslint],
-  %w[yarn run stylelint],
-  %w[yarn run prettier-all],
-  %w[bundle exec rubocop --parallel],
-  %w[scripts/lint-conflicts.sh],
-  %w[scripts/lint-rugged]
-]
+def jobs_to_run(node_index, node_total)
+  all_tasks = [
+    %w[bin/rake lint:all],
+    %w[bundle exec license_finder],
+    %w[yarn run eslint],
+    %w[yarn run stylelint],
+    %w[yarn run prettier-all],
+    %w[bundle exec rubocop --parallel],
+    %w[scripts/lint-conflicts.sh],
+    %w[scripts/lint-rugged]
+  ]
 
+  case node_total
+  when 1
+    all_tasks
+  when 2
+    rake_lint_all, *rest_jobs = all_tasks
+    case node_index
+    when 1
+      [rake_lint_all]
+    else
+      rest_jobs
+    end
+  else
+    raise "Parallelization > 2 (currently set to #{node_total}) isn't supported yet!"
+  end
+end
+
+tasks = jobs_to_run((ENV['CI_NODE_INDEX'] || 1).to_i, (ENV['CI_NODE_TOTAL'] || 1).to_i)
 static_analysis = Gitlab::Popen::Runner.new
 
 static_analysis.run(tasks) do |cmd, &run|