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 = [
|
nativeBuildInputs = [
|
||||||
pkgs.pkg-config
|
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
|
# NOTE: duplicated in flake.nix devShell
|
||||||
env = {
|
env = {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue