diff --git a/ops/pipelines/depot.nix b/ops/pipelines/depot.nix index 63b1bc067..9f7aaf8ba 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 c3c985243..312ef3f8d 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; +})