diff --git a/buildkite/bazelci.py b/buildkite/bazelci.py
index 59af243..066d676 100644
--- a/buildkite/bazelci.py
+++ b/buildkite/bazelci.py
@@ -1672,35 +1672,7 @@
         )
 
     if "validate_config" in configs:
-        output = execute_command_and_get_output(
-            [
-                "git",
-                "diff-tree",
-                "--no-commit-id",
-                "--name-only",
-                "-r",
-                os.getenv("BUILDKITE_COMMIT"),
-            ]
-        )
-        config_files = [
-            l
-            for l in output.split("\n")
-            if l.startswith(".bazelci/") and os.path.splitext(l)[1] in CONFIG_FILE_EXTENSIONS
-        ]
-        platform = DEFAULT_PLATFORM
-        for f in config_files:
-            pipeline_steps.append(
-                create_step(
-                    label=":cop: Validate {}".format(f),
-                    commands=[
-                        fetch_bazelcipy_command(),
-                        "{} bazelci.py project_pipeline --file_config={}".format(
-                            python_binary(platform), f
-                        ),
-                    ],
-                    platform=platform,
-                )
-            )
+        pipeline_steps += create_config_validation_steps()
 
     print(yaml.dump({"steps": pipeline_steps}))
 
@@ -1712,6 +1684,31 @@
     return task_config.get("platform", task)
 
 
+def create_config_validation_steps():
+    output = execute_command_and_get_output(
+        ["git", "diff-tree", "--no-commit-id", "--name-only", "-r", os.getenv("BUILDKITE_COMMIT")]
+    )
+    config_files = [
+        l
+        for l in output.split("\n")
+        if l.startswith(".bazelci/") and os.path.splitext(l)[1] in CONFIG_FILE_EXTENSIONS
+    ]
+    platform = DEFAULT_PLATFORM
+    return [
+        create_step(
+            label=":cop: Validate {}".format(f),
+            commands=[
+                fetch_bazelcipy_command(),
+                "{} bazelci.py project_pipeline --file_config={}".format(
+                    python_binary(platform), f
+                ),
+            ],
+            platform=platform,
+        )
+        for f in config_files
+    ]
+
+
 def runner_step(
     platform,
     task,
