about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ops/pipelines/depot.nix9
-rw-r--r--tools/depotfmt.nix12
2 files changed, 14 insertions, 7 deletions
diff --git a/ops/pipelines/depot.nix b/ops/pipelines/depot.nix
index 63b1bc067a..9f7aaf8ba0 100644
--- a/ops/pipelines/depot.nix
+++ b/ops/pipelines/depot.nix
@@ -10,9 +10,16 @@ let
     command = "${depot.nix.bufCheck}/bin/ci-buf-check";
     label = ":water_buffalo:";
   };
+
+  # Formatting check which validates that all supported auto-formatted
+  # files are formatted correctly. See //tools/depotfmt for details.
+  depotfmtCheck = {
+    command = "${depot.tools.depotfmt.check}";
+    label = ":evergreen_tree: (tools/depotfmt)";
+  };
 in depot.nix.buildkite.mkPipeline {
   headBranch = "refs/heads/canon";
   drvTargets = depot.ci.targets;
   skipIfBuilt = true;
-  additionalSteps = [ protoCheck ];
+  additionalSteps = [ depotfmtCheck protoCheck ];
 }
diff --git a/tools/depotfmt.nix b/tools/depotfmt.nix
index c3c9852430..312ef3f8df 100644
--- a/tools/depotfmt.nix
+++ b/tools/depotfmt.nix
@@ -27,13 +27,13 @@ let
       --tree-root $(${pkgs.git}/bin/git rev-parse --show-toplevel)
   '';
 
-  # wrapper for running formatting checks in CI
-  check = pkgs.runCommandNoCC "depotfmt-check" {} ''
-    ${pkgs.git}/bin/git clone ${depot.path.origSrc} depot
-    export HOME="$(${pkgs.coreutils}/bin/realpath .)"
+  # wrapper script for running formatting checks in CI
+  check = pkgs.writeShellScript "depotfmt-check" ''
     ${pkgs.treefmt}/bin/treefmt \
       --fail-on-change \
       --config-file ${config} \
-      --tree-root depot && : > $out
+      --tree-root .
   '';
-in depotfmt // depot.nix.readTree.drvTargets { inherit check; }
+in depotfmt.overrideAttrs(_: {
+  passthru.check = check;
+})