deploy: gc jupiter after every switch (eMMC space)
configurationLimit prunes generations beyond the cap as part of the switch, but pruning only drops a generation as a GC root — the store paths themselves still need an actual collect to free the disk. Do that right after every jupiter switch rather than waiting up to a week for gc.dates=weekly to matter again.
This commit is contained in:
@@ -838,6 +838,26 @@ case "$cmd" in
|
||||
else
|
||||
"${rebuild[@]}"
|
||||
fi
|
||||
|
||||
# jupiter's 29G eMMC has no room to just let generations pile up between
|
||||
# gc.dates=weekly runs (common.nix) — that's exactly how it filled up
|
||||
# once already. configurationLimit=5 (also common.nix) makes
|
||||
# switch-to-configuration prune generations beyond 5 as part of the
|
||||
# switch above, but pruning a generation only drops it as a GC root —
|
||||
# the store paths themselves still need an actual collect to free the
|
||||
# disk. So do that here, right after every switch, rather than waiting
|
||||
# up to a week for it to matter again.
|
||||
if [ "$cmd" = switch ] && [ "$config" = jupiter ]; then
|
||||
echo ">> jupiter: collecting garbage post-switch (keeps the eMMC under the 5-generation cap)"
|
||||
need ssh
|
||||
if [ -n "$pw" ]; then
|
||||
printf '%s\n' "$pw" | ssh "darman@$host" 'sudo -S nix-collect-garbage -d' \
|
||||
|| echo ">> warning: post-switch gc on jupiter failed — check disk space by hand" >&2
|
||||
else
|
||||
ssh -t "darman@$host" 'sudo nix-collect-garbage -d' \
|
||||
|| echo ">> warning: post-switch gc on jupiter failed — check disk space by hand" >&2
|
||||
fi
|
||||
fi
|
||||
unset pw
|
||||
;;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user