summary refs log tree commit diff
path: root/lib
diff options
context:
space:
mode:
authorAdam Joseph <adam@westernsemico.com>2023-11-09 02:08:44 -0800
committerAdam Joseph <adam@westernsemico.com>2023-11-18 20:19:10 -0800
commit54c9a08aaf98d6d3fd94dc843003360077bee4cc (patch)
tree52df01c7e4ef2a6910e8491630ce46a05d6c753c /lib
parent18e76671a16cebf6bcf52d9196d25a5a9f8c9ad7 (diff)
downloadnixpkgs-54c9a08aaf98d6d3fd94dc843003360077bee4cc.tar
nixpkgs-54c9a08aaf98d6d3fd94dc843003360077bee4cc.tar.gz
nixpkgs-54c9a08aaf98d6d3fd94dc843003360077bee4cc.tar.bz2
nixpkgs-54c9a08aaf98d6d3fd94dc843003360077bee4cc.tar.lz
nixpkgs-54c9a08aaf98d6d3fd94dc843003360077bee4cc.tar.xz
nixpkgs-54c9a08aaf98d6d3fd94dc843003360077bee4cc.tar.zst
nixpkgs-54c9a08aaf98d6d3fd94dc843003360077bee4cc.zip
lib.tests: build nix without flaky aws-sdk-cpp
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.  Bonus:
the tests build way faster.
Diffstat (limited to 'lib')
-rw-r--r--lib/path/tests/default.nix9
-rw-r--r--lib/tests/nix-for-tests.nix17
-rw-r--r--lib/tests/release.nix5
3 files changed, 26 insertions, 5 deletions
diff --git a/lib/path/tests/default.nix b/lib/path/tests/default.nix
index 50d40cdfa47..93aea798acc 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 00000000000..69dedece387
--- /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 c8d6b810122..1286ccf385f 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