feat(tvix/utils): Add mkCrate2nixCheck
This adds a function which can be used across the monorepo to create a an extra CI step that checks whether the Cargo.nix file is up-to-date. Change-Id: Idb8298b29ddc2ca5dff1facb1b9ed86a236ee66d Reviewed-on: https://cl.tvl.fyi/c/depot/+/12227 Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de>
This commit is contained in:
parent
afef485221
commit
6da55dc1a6
2 changed files with 36 additions and 56 deletions
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, depot, ... }:
|
||||
{ pkgs, lib, depot, ... }:
|
||||
|
||||
{
|
||||
mkFeaturePowerset = { crateName, features, override ? { } }:
|
||||
|
|
@ -125,4 +125,27 @@
|
|||
src = depot.tvix.utils.filterRustCrateSrc { root = prev.src.origSrc; };
|
||||
};
|
||||
};
|
||||
|
||||
# This creates an extraStep in CI to check whether the Cargo.nix file is up-to-date.
|
||||
mkCrate2nixCheck =
|
||||
path: # The path to the Cargo.nix to be checked.
|
||||
let
|
||||
relCrateRoot = lib.removePrefix "./" (builtins.dirOf (lib.path.removePrefix depot.path.origSrc path));
|
||||
in
|
||||
{
|
||||
label = "crate2nix check for ${relCrateRoot}";
|
||||
needsOutput = true;
|
||||
alwaysRun = true;
|
||||
command = pkgs.writeShellScript "crate2nix-check-for-${lib.replaceStrings [ "/" ] ["-"] relCrateRoot}" ''
|
||||
(cd $(git rev-parse --show-toplevel)/${relCrateRoot} &&
|
||||
${depot.tools.crate2nix-generate}/bin/crate2nix-generate &&
|
||||
if [[ -n "$(git status --porcelain -unormal Cargo.nix)" ]]; then
|
||||
echo "----------------------------------------------------------------------------------------------------"
|
||||
echo "Cargo.nix needs to be updated, run 'mg run //tools/crate2nix-generate' in ${relCrateRoot}"
|
||||
echo "----------------------------------------------------------------------------------------------------"
|
||||
exit 1
|
||||
fi
|
||||
)
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue