1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-24 13:51:16 +02:00

Merge pull request #13320 from DeterminateSystems/keep-failed-remote-builders-warning

Clarify that `--keep-failed` with remote builders will keep the failed build directory on that builder
This commit is contained in:
Jörg Thalheim 2025-06-03 19:28:20 +02:00 committed by GitHub
commit 4b8f74b3a3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 11 additions and 1 deletions

View file

@ -329,8 +329,17 @@ connected:
drv.inputSrcs = store->parseStorePathSet(inputs);
optResult = sshStore->buildDerivation(*drvPath, (const BasicDerivation &) drv);
auto & result = *optResult;
if (!result.success())
if (!result.success()) {
if (settings.keepFailed) {
warn(
"The failed build directory was kept on the remote builder due to `--keep-failed`.%s",
(settings.thisSystem == drv.platform || settings.extraPlatforms.get().count(drv.platform) > 0)
? " You can re-run the command with `--builders ''` to disable remote building for this invocation."
: ""
);
}
throw Error("build of '%s' on '%s' failed: %s", store->printStorePath(*drvPath), storeUri, result.errorMsg);
}
} else {
copyClosure(*store, *sshStore, StorePathSet {*drvPath}, NoRepair, NoCheckSigs, substitute);
auto res = sshStore->buildPathsWithResults({

View file

@ -85,6 +85,7 @@ out="$(nix-build 2>&1 failing.nix \
--arg busybox "$busybox")" || true
[[ "$out" =~ .*"note: keeping build directory".* ]]
[[ "$out" =~ .*"The failed build directory was kept on the remote builder due to".* ]]
build_dir="$(grep "note: keeping build" <<< "$out" | sed -E "s/^(.*)note: keeping build directory '(.*)'(.*)$/\2/")"
[[ "foo" = $(<"$build_dir"/bar) ]]