diff options
author | Ilan Joselevich <personal@ilanjoselevich.com> | 2024-08-17T16·50+0300 |
---|---|---|
committer | Ilan Joselevich <personal@ilanjoselevich.com> | 2024-08-23T17·03+0000 |
commit | 6da55dc1a6c91db2b507bb8fec0ddcedfe65e6c3 (patch) | |
tree | 995ad4260ec0932379aaa8c32f60a80bbe41c93b /tvix/utils.nix | |
parent | afef485221953ac00fcf35f206af9d9e250c4944 (diff) |
feat(tvix/utils): Add mkCrate2nixCheck r/8565
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>
Diffstat (limited to 'tvix/utils.nix')
-rw-r--r-- | tvix/utils.nix | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/tvix/utils.nix b/tvix/utils.nix index dc40df5007ea..c398930e7587 100644 --- a/tvix/utils.nix +++ b/tvix/utils.nix @@ -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 + ) + ''; + }; } |