From 54c9a08aaf98d6d3fd94dc843003360077bee4cc Mon Sep 17 00:00:00 2001 From: Adam Joseph Date: Thu, 9 Nov 2023 02:08:44 -0800 Subject: [PATCH] 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. --- lib/path/tests/default.nix | 9 ++++++--- lib/tests/nix-for-tests.nix | 17 +++++++++++++++++ lib/tests/release.nix | 5 +++-- 3 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 lib/tests/nix-for-tests.nix 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