dev: Use relocated store in Nix-packaged tests
(cherry picked from commit 3bb16f6745cc2eb6f1474b73947d0fe2c20788e2)
This commit is contained in:
parent
9021f55a53
commit
38aab588fd
1 changed files with 25 additions and 0 deletions
25
rust/nci.nix
25
rust/nci.nix
|
|
@ -13,6 +13,31 @@
|
|||
nativeBuildInputs = [
|
||||
pkgs.pkg-config
|
||||
];
|
||||
# Prepare the environment for Nix to work.
|
||||
# Nix does not provide a suitable environment for running itself in
|
||||
# the sandbox - not by default. We configure it to use a relocated store.
|
||||
preCheck = ''
|
||||
# nix needs a home directory
|
||||
export HOME="$(mktemp -d $TMPDIR/home.XXXXXX)"
|
||||
|
||||
# configure a relocated store
|
||||
store_data=$(mktemp -d $TMPDIR/store-data.XXXXXX)
|
||||
export NIX_REMOTE="$store_data"
|
||||
export NIX_BUILD_HOOK=
|
||||
export NIX_CONF_DIR=$store_data/etc
|
||||
export NIX_LOCALSTATE_DIR=$store_data/nix/var
|
||||
export NIX_LOG_DIR=$store_data/nix/var/log/nix
|
||||
export NIX_STATE_DIR=$store_data/nix/var/nix
|
||||
|
||||
echo "Configuring relocated store at $NIX_REMOTE..."
|
||||
|
||||
# Init ahead of time, because concurrent initialization is flaky
|
||||
${# Not using nativeBuildInputs because this should (hopefully) be
|
||||
# the only place where we need a nix binary. Let's stay in control.
|
||||
pkgs.buildPackages.nix}/bin/nix-store --init
|
||||
|
||||
echo "Store initialized."
|
||||
'';
|
||||
};
|
||||
# NOTE: duplicated in flake.nix devShell
|
||||
env = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue