aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/tools/remote
diff options
context:
space:
mode:
authorGravatar Hadrien Chauvin <hadrienchauvin@gmail.com>2017-12-20 08:45:45 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2017-12-20 09:18:36 -0800
commit3d0a04ddc6b0f4d660256f274ceb3e5c7f654c90 (patch)
treed9cb81241894d7faf323ad101c7b81cc71a005c4 /src/tools/remote
parent8e3afccd8bea45105752ddeb33bde111c556fb8b (diff)
remote: add directory support for remote caching and execution
Add support for directory trees as artifacts. Closes #4011. PiperOrigin-RevId: 179691001
Diffstat (limited to 'src/tools/remote')
-rw-r--r--src/tools/remote/src/main/java/com/google/devtools/build/remote/worker/ExecutionServer.java9
-rw-r--r--src/tools/remote/src/main/java/com/google/devtools/build/remote/worker/RemoteWorker.java2
2 files changed, 9 insertions, 2 deletions
diff --git a/src/tools/remote/src/main/java/com/google/devtools/build/remote/worker/ExecutionServer.java b/src/tools/remote/src/main/java/com/google/devtools/build/remote/worker/ExecutionServer.java
index 22761a9b19..f7575bd35b 100644
--- a/src/tools/remote/src/main/java/com/google/devtools/build/remote/worker/ExecutionServer.java
+++ b/src/tools/remote/src/main/java/com/google/devtools/build/remote/worker/ExecutionServer.java
@@ -191,7 +191,14 @@ final class ExecutionServer extends ExecutionImplBase {
FileSystemUtils.createDirectoryAndParents(file.getParentDirectory());
outputs.add(file);
}
- // TODO(olaola): support output directories.
+ for (String output : action.getOutputDirectoriesList()) {
+ Path file = execRoot.getRelative(output);
+ if (file.exists()) {
+ throw new FileAlreadyExistsException("Output directory/file already exists: " + file);
+ }
+ FileSystemUtils.createDirectoryAndParents(file.getParentDirectory());
+ outputs.add(file);
+ }
// TODO(ulfjack): This is basically a copy of LocalSpawnRunner. Ideally, we'd use that
// implementation instead of copying it.
diff --git a/src/tools/remote/src/main/java/com/google/devtools/build/remote/worker/RemoteWorker.java b/src/tools/remote/src/main/java/com/google/devtools/build/remote/worker/RemoteWorker.java
index 8463bb0091..c03039730e 100644
--- a/src/tools/remote/src/main/java/com/google/devtools/build/remote/worker/RemoteWorker.java
+++ b/src/tools/remote/src/main/java/com/google/devtools/build/remote/worker/RemoteWorker.java
@@ -268,7 +268,7 @@ public final class RemoteWorker {
} else {
blobStore = new ConcurrentMapBlobStore(new ConcurrentHashMap<String, byte[]>());
}
-
+
DigestUtil digestUtil = new DigestUtil(fs.getDigestFunction());
RemoteWorker worker =
new RemoteWorker(