Fix RemoteSpawnStrategy to upload stdout/stderr to the remote cache
This is already fixed in the CachedLocalSpawnRunner, with tests there, which
will replace RemoteSpawnStrategy in the near future. For now, I'd like to get
this in in time for 0.5.0 to get test caching working.
Fixes #1413.
PiperOrigin-RevId: 153486592
diff --git a/src/main/java/com/google/devtools/build/lib/remote/RemoteSpawnStrategy.java b/src/main/java/com/google/devtools/build/lib/remote/RemoteSpawnStrategy.java
index 0391bad..05c9b92 100644
--- a/src/main/java/com/google/devtools/build/lib/remote/RemoteSpawnStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/remote/RemoteSpawnStrategy.java
@@ -152,6 +152,15 @@
try {
ActionResult.Builder result = ActionResult.newBuilder();
actionCache.uploadAllResults(execRoot, outputFiles, result);
+ FileOutErr outErr = actionExecutionContext.getFileOutErr();
+ if (outErr.getErrorPath().exists()) {
+ ContentDigest stderr = actionCache.uploadFileContents(outErr.getErrorPath());
+ result.setStderrDigest(stderr);
+ }
+ if (outErr.getOutputPath().exists()) {
+ ContentDigest stdout = actionCache.uploadFileContents(outErr.getOutputPath());
+ result.setStdoutDigest(stdout);
+ }
actionCache.setCachedActionResult(actionKey, result.build());
// Handle all cache errors here.
} catch (IOException e) {