mirror of
https://github.com/NixOS/nix.git
synced 2025-11-16 07:22:43 +01:00
Merge branch 'build-trace-rework' into json-no-store-dir
This commit is contained in:
commit
04edfa34fe
63 changed files with 975 additions and 992 deletions
|
|
@ -25,4 +25,9 @@ nix build -f nondeterministic.nix dep2 --no-link
|
|||
# If everything goes right, we should rebuild dep2 rather than fetch it from
|
||||
# the cache (because that would mean duplicating `current-time` in the closure),
|
||||
# and have `dep1 == dep2`.
|
||||
|
||||
# FIXME: Force the use of small-step resolutions only to fix this in a
|
||||
# better way (#11896, #11928).
|
||||
skipTest "temporarily broken because dependent realisations are removed"
|
||||
|
||||
nix build --substituters "$REMOTE_STORE" -f nondeterministic.nix toplevel --no-require-sigs --no-link
|
||||
|
|
|
|||
|
|
@ -22,7 +22,10 @@ nix copy --to "$REMOTE_STORE" --file ./content-addressed.nix
|
|||
|
||||
# Restart the build on an empty store, ensuring that we don't build
|
||||
clearStore
|
||||
buildDrvs --substitute --substituters "$REMOTE_STORE" --no-require-sigs -j0 transitivelyDependentCA
|
||||
# FIXME: `dependentCA` should not need to be explicitly mentioned in
|
||||
# this. Force the use of small-step resolutions only to allow not
|
||||
# mentioning it explicitly again. (#11896, #11928).
|
||||
buildDrvs --substitute --substituters "$REMOTE_STORE" --no-require-sigs -j0 transitivelyDependentCA dependentCA
|
||||
# Check that the thing we’ve just substituted has its realisation stored
|
||||
nix realisation info --file ./content-addressed.nix transitivelyDependentCA
|
||||
# Check that its dependencies have it too
|
||||
|
|
@ -46,14 +49,14 @@ fi
|
|||
clearStore
|
||||
nix build --file ../simple.nix -L --no-link --post-build-hook "$pushToStore"
|
||||
clearStore
|
||||
rm -r "$REMOTE_STORE_DIR/realisations"
|
||||
rm -r "$REMOTE_STORE_DIR/build-trace"
|
||||
nix build --file ../simple.nix -L --no-link --substitute --substituters "$REMOTE_STORE" --no-require-sigs -j0
|
||||
# There's no easy way to check whether a realisation is present on the local
|
||||
# store − short of manually querying the db, but the build environment doesn't
|
||||
# have the sqlite binary − so we instead push things again, and check that the
|
||||
# realisations have correctly been pushed to the remote store
|
||||
nix copy --to "$REMOTE_STORE" --file ../simple.nix
|
||||
if [[ -z "$(ls "$REMOTE_STORE_DIR/realisations")" ]]; then
|
||||
if [[ -z "$(ls "$REMOTE_STORE_DIR/build-trace")" ]]; then
|
||||
echo "Realisations not rebuilt"
|
||||
exit 1
|
||||
fi
|
||||
|
|
@ -68,5 +71,5 @@ buildDrvs --substitute --substituters "$REMOTE_STORE" --no-require-sigs -j0
|
|||
# Try rebuilding, but remove the realisations from the remote cache to force
|
||||
# using the cachecache
|
||||
clearStore
|
||||
rm "$REMOTE_STORE_DIR"/realisations/*
|
||||
rm -r "$REMOTE_STORE_DIR"/build-trace/*
|
||||
buildDrvs --substitute --substituters "$REMOTE_STORE" --no-require-sigs -j0
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue