Description of the problem / feature request:
When using --remote_download_minimal, downloaded inputs shouldn't be deleted after the build.
Feature requests: what underlying problem are you trying to solve with this feature?
Currently, when bazel needs to download inputs for a locally run action while using --remote_download_minimal, it deletes these inputs after the build:
|
/** |
|
* Delete any input files that have been fetched from the remote cache during the build. This is |
|
* so that Bazel's view of the output base is identical with the output base after a build i.e. |
|
* files that Bazel thinks exist only remotely actually do. |
|
*/ |
|
private void deleteDownloadedInputs() throws IOException { |
|
if (actionInputFetcher == null) { |
|
return; |
|
} |
|
IOException deletionFailure = null; |
|
for (Path file : actionInputFetcher.downloadedFiles()) { |
|
try { |
|
file.delete(); |
|
} catch (IOException e) { |
|
logger.atSevere().withCause(e).log( |
|
"Failed to delete remote output '%s' from the output base.", file); |
|
deletionFailure = e; |
|
} |
|
} |
|
if (deletionFailure != null) { |
|
throw deletionFailure; |
|
} |
|
} |
This makes incremental compilation less efficient.
For example, if we set a bundling rule to run locally, bazel will download all of the various artifacts that need to be bundled together, and if we incrementally only change a single artifact in that bundle, bazel will have to re-download all of the artifacts, even though they didn't change since the last build. The fact that disk_cache doesn't work with remote builds ensure that this is a slow download as well.
What operating system are you running Bazel on?
macOS 10.15.7
What's the output of bazel info release?
release 4.0.0rc10
Have you found anything relevant by searching the web?
Description of the problem / feature request:
When using
--remote_download_minimal, downloaded inputs shouldn't be deleted after the build.Feature requests: what underlying problem are you trying to solve with this feature?
Currently, when bazel needs to download inputs for a locally run action while using
--remote_download_minimal, it deletes these inputs after the build:bazel/src/main/java/com/google/devtools/build/lib/remote/RemoteModule.java
Lines 788 to 810 in 570f019
This makes incremental compilation less efficient.
For example, if we set a bundling rule to run locally, bazel will download all of the various artifacts that need to be bundled together, and if we incrementally only change a single artifact in that bundle, bazel will have to re-download all of the artifacts, even though they didn't change since the last build. The fact that disk_cache doesn't work with remote builds ensure that this is a slow download as well.
What operating system are you running Bazel on?
macOS 10.15.7
What's the output of
bazel info release?release 4.0.0rc10
Have you found anything relevant by searching the web?