diff --git a/lib/path/tests/default.nix b/lib/path/tests/default.nix index 50d40cdfa476..93aea798acca 100644 --- a/lib/path/tests/default.nix +++ b/lib/path/tests/default.nix @@ -6,16 +6,19 @@ overlays = []; inherit system; }, + nixVersions ? import ../../tests/nix-for-tests.nix { inherit pkgs; }, libpath ? ../.., # Random seed seed ? null, }: + pkgs.runCommand "lib-path-tests" { - nativeBuildInputs = with pkgs; [ - nix + nativeBuildInputs = [ + nixVersions.stable + ] ++ (with pkgs; [ jq bc - ]; + ]); } '' # Needed to make Nix evaluation work export TEST_ROOT=$(pwd)/test-tmp diff --git a/lib/tests/nix-for-tests.nix b/lib/tests/nix-for-tests.nix new file mode 100644 index 000000000000..69dedece3874 --- /dev/null +++ b/lib/tests/nix-for-tests.nix @@ -0,0 +1,17 @@ +{ pkgs +}: + +# The aws-sdk-cpp tests are flaky. Since pull requests to staging +# cause nix to be rebuilt, this means that staging PRs end up +# getting false CI failures due to whatever is flaky in the AWS +# SDK tests. Since none of our CI needs to (or should be able to) +# contact AWS S3, let's just omit it all from the Nix that runs +# CI. Bonus: the tests build way faster. +# +# See also: https://github.com/NixOS/nix/issues/7582 + +builtins.mapAttrs (_: pkg: + if builtins.isAttrs pkg + then pkg.override { withAWS = false; } + else pkg) + pkgs.nixVersions diff --git a/lib/tests/release.nix b/lib/tests/release.nix index c8d6b810122e..1286ccf385ff 100644 --- a/lib/tests/release.nix +++ b/lib/tests/release.nix @@ -1,8 +1,9 @@ { # The pkgs used for dependencies for the testing itself # Don't test properties of pkgs.lib, but rather the lib in the parent directory pkgs ? import ../.. {} // { lib = throw "pkgs.lib accessed, but the lib tests should use nixpkgs' lib path directly!"; }, - nix ? pkgs.nix, - nixVersions ? [ pkgs.nixVersions.minimum nix pkgs.nixVersions.unstable ], + nix ? pkgs-nixVersions.stable, + nixVersions ? [ pkgs-nixVersions.minimum nix pkgs-nixVersions.unstable ], + pkgs-nixVersions ? import ./nix-for-tests.nix { inherit pkgs; }, }: let