about summary refs log tree commit diff
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2021-12-28T10·38+0300
committerclbot <clbot@tvl.fyi>2021-12-28T15·37+0000
commit7ecb2a1144bb3b25129d527296adb5481a8aaa0a (patch)
tree4c9e5be17d0b32d1114db68950238cc66f7f5594
parentb7ef2a579b513a8d1a8deb9e864f8f664ee44d2a (diff)
refactor(tools/depotfmt): Move depotfmt check into a real build step r/3492
Produces more useful output and also makes for a good target for the
upcoming extraSteps logic.

Change-Id: Ifd389d433d9e27f97940a48999f4fba35646e37a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4727
Tested-by: BuildkiteCI
Autosubmit: tazjin <mail@tazj.in>
Reviewed-by: sterni <sternenseemann@systemli.org>
-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 63b1bc067a91..9f7aaf8ba01f 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 c3c9852430af..312ef3f8df07 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;
+})