tests.haskell.cabalSdist: Prevent rebuilds when Nix files change
The generated file sets its own directory as the source, including the generated file itself, which causes rebuilds when that file is reformatted. We can avoid this by overriding the source with a filtered version and using that throughout the tests. See https://github.com/NixOS/nixpkgs/pull/320572 for more context
This commit is contained in:
parent
7cb66fd579
commit
e6d45588ad
@ -1,7 +1,18 @@
|
||||
{ lib, haskellPackages, runCommand }:
|
||||
{ lib, haskell, haskellPackages, runCommand }:
|
||||
|
||||
let
|
||||
localRaw = haskellPackages.callPackage ./local/generated.nix {};
|
||||
src = lib.fileset.toSource {
|
||||
root = ./local;
|
||||
fileset = lib.fileset.unions [
|
||||
./local/app
|
||||
./local/CHANGELOG.md
|
||||
./local/local.cabal
|
||||
];
|
||||
};
|
||||
# This prevents the source from depending on the formatting of the ./local/generated.nix file
|
||||
localRaw = haskell.lib.compose.overrideSrc {
|
||||
inherit src;
|
||||
} (haskellPackages.callPackage ./local/generated.nix {});
|
||||
in
|
||||
lib.recurseIntoAttrs rec {
|
||||
|
||||
@ -20,14 +31,14 @@ lib.recurseIntoAttrs rec {
|
||||
assumptionLocalHasDirectReference = runCommand "localHasDirectReference" {
|
||||
drvPath = builtins.unsafeDiscardOutputDependency localRaw.drvPath;
|
||||
} ''
|
||||
grep ${./local} $drvPath >/dev/null
|
||||
grep ${src} $drvPath >/dev/null
|
||||
touch $out
|
||||
'';
|
||||
|
||||
localHasNoDirectReference = runCommand "localHasNoDirectReference" {
|
||||
drvPath = builtins.unsafeDiscardOutputDependency localFromCabalSdist.drvPath;
|
||||
} ''
|
||||
grep -v ${./local} $drvPath >/dev/null
|
||||
grep -v ${src} $drvPath >/dev/null
|
||||
touch $out
|
||||
'';
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user