mkBinaryCache: fix nixos/tests/binary-cache.nix #370773
Merged
+26
−8
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This fixes the test in
nixos/tests/binary-cache.nix. It stopped working sometime betweenrelease-23.05andrelease-23.11. I'm not sure exactly why, but I think it has something to do with the build sandbox being introduced. Currently, the test tries to build the binary cache on the VM, and a bunch of dependencies are not present, and it has no network access so it fails to download them.The new approach is actually cleaner: we build the binary cache outside the VM, and then transfer it onto the VM. In order to ensure that we test building against the cache only and don't pollute the store with unnecessary paths, we encrypt the cache to defeat Nix reference scanning. (I considered using an FOD instead, but this seems more foolproof and cleaner.)
To test:
nix-build -A nixosTests.binary-cacheIn the course of testing this, I learned that doing
nix-build -A nixosTests.binary-cache.driver && ./result/bin/nixos-test-driveractually works differently -- invoking the driver like this does not use the build sandbox, so is less isolated than the plainnix-buildapproach.Things done
nix.conf? (See Nix manual)sandbox = relaxedsandbox = truenix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/)Add a 👍 reaction to pull requests you find important.