aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/remote/CachedLocalSpawnRunner.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/remote/CachedLocalSpawnRunner.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/remote/CachedLocalSpawnRunner.java12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/remote/CachedLocalSpawnRunner.java b/src/main/java/com/google/devtools/build/lib/remote/CachedLocalSpawnRunner.java
index 3a10aa490d..fb7241eb7b 100644
--- a/src/main/java/com/google/devtools/build/lib/remote/CachedLocalSpawnRunner.java
+++ b/src/main/java/com/google/devtools/build/lib/remote/CachedLocalSpawnRunner.java
@@ -126,8 +126,10 @@ final class CachedLocalSpawnRunner implements SpawnRunner {
}
}
SpawnResult spawnResult = delegate.exec(spawn, policy);
- if (options.remoteLocalExecUploadResults && spawnResult.setupSuccess()) {
- writeCacheEntry(spawn, actionKey);
+ if (options.remoteLocalExecUploadResults
+ && spawnResult.status() == Status.SUCCESS
+ && spawnResult.exitCode() == 0) {
+ writeCacheEntry(spawn, policy.getFileOutErr(), actionKey);
}
return spawnResult;
} catch (StatusRuntimeException e) {
@@ -172,7 +174,7 @@ final class CachedLocalSpawnRunner implements SpawnRunner {
outErr.printErr(new String(streams.get(1), UTF_8));
}
- private void writeCacheEntry(Spawn spawn, ActionKey actionKey)
+ private void writeCacheEntry(Spawn spawn, FileOutErr outErr, ActionKey actionKey)
throws IOException, InterruptedException {
ArrayList<Path> outputFiles = new ArrayList<>();
for (ActionInput output : spawn.getOutputFiles()) {
@@ -185,6 +187,10 @@ final class CachedLocalSpawnRunner implements SpawnRunner {
}
ActionResult.Builder result = ActionResult.newBuilder();
actionCache.uploadAllResults(execRoot, outputFiles, result);
+ ContentDigest stderr = actionCache.uploadFileContents(outErr.getErrorPath());
+ ContentDigest stdout = actionCache.uploadFileContents(outErr.getOutputPath());
+ result.setStderrDigest(stderr);
+ result.setStdoutDigest(stdout);
actionCache.setCachedActionResult(actionKey, result.build());
}
}