refactor(tools/depotfmt): Move depotfmt check into a real build step

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>
This commit is contained in:
Vincent Ambo 2021-12-28 13:38:03 +03:00 committed by clbot
parent b7ef2a579b
commit 7ecb2a1144
2 changed files with 14 additions and 7 deletions

View file

@ -10,9 +10,16 @@ let
command = "${depot.nix.bufCheck}/bin/ci-buf-check"; command = "${depot.nix.bufCheck}/bin/ci-buf-check";
label = ":water_buffalo:"; 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 { in depot.nix.buildkite.mkPipeline {
headBranch = "refs/heads/canon"; headBranch = "refs/heads/canon";
drvTargets = depot.ci.targets; drvTargets = depot.ci.targets;
skipIfBuilt = true; skipIfBuilt = true;
additionalSteps = [ protoCheck ]; additionalSteps = [ depotfmtCheck protoCheck ];
} }

View file

@ -27,13 +27,13 @@ let
--tree-root $(${pkgs.git}/bin/git rev-parse --show-toplevel) --tree-root $(${pkgs.git}/bin/git rev-parse --show-toplevel)
''; '';
# wrapper for running formatting checks in CI # wrapper script for running formatting checks in CI
check = pkgs.runCommandNoCC "depotfmt-check" {} '' check = pkgs.writeShellScript "depotfmt-check" ''
${pkgs.git}/bin/git clone ${depot.path.origSrc} depot
export HOME="$(${pkgs.coreutils}/bin/realpath .)"
${pkgs.treefmt}/bin/treefmt \ ${pkgs.treefmt}/bin/treefmt \
--fail-on-change \ --fail-on-change \
--config-file ${config} \ --config-file ${config} \
--tree-root depot && : > $out --tree-root .
''; '';
in depotfmt // depot.nix.readTree.drvTargets { inherit check; } in depotfmt.overrideAttrs(_: {
passthru.check = check;
})