diff options
Diffstat (limited to 'src/main/java/com/google/devtools')
3 files changed, 18 insertions, 11 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BlazeDirectories.java b/src/main/java/com/google/devtools/build/lib/analysis/BlazeDirectories.java index 20954bb732..d546870a4a 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/BlazeDirectories.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/BlazeDirectories.java @@ -178,12 +178,11 @@ public final class BlazeDirectories { } /** - * Returns the directory where the stdout/stderr for actions can be stored - * temporarily for a build. If the directory already exists, the directory - * is cleaned. + * Returns the directory where the stdout/stderr for actions can be stored temporarily for a + * build. If the directory already exists, the directory is cleaned. */ - public Path getActionConsoleOutputDirectory() { - return getOutputBase().getRelative("action_outs"); + public Path getActionConsoleOutputDirectory(Path execRoot) { + return execRoot.getRelative(getRelativeOutputPath()).getRelative("_tmp/action_outs"); } /** diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java b/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java index 59e447eecd..997b9e7504 100644 --- a/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java +++ b/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java @@ -350,6 +350,9 @@ public class ExecutionTool { startLocalOutputBuild(analysisResult.getWorkspaceName()); } + // Must be created after the output path is created above. + createActionLogDirectory(); + List<BuildConfiguration> targetConfigurations = configurations.getTargetConfigurations(); BuildConfiguration targetConfiguration = targetConfigurations.size() == 1 ? targetConfigurations.get(0) : null; @@ -496,9 +499,6 @@ public class ExecutionTool { // Prepare for build. Profiler.instance().markPhase(ProfilePhase.PREPARE); - // Create some tools symlinks / cleanup per-build state - createActionLogDirectory(); - // Plant the symlink forest. try { new SymlinkForest( @@ -518,12 +518,12 @@ public class ExecutionTool { } private void createActionLogDirectory() throws ExecutorInitException { - Path directory = env.getDirectories().getActionConsoleOutputDirectory(); + Path directory = env.getActionConsoleOutputDirectory(); try { if (directory.exists()) { FileSystemUtils.deleteTree(directory); } - directory.createDirectory(); + FileSystemUtils.createDirectoryAndParents(directory); } catch (IOException e) { throw new ExecutorInitException("Couldn't delete action output directory", e); } @@ -655,7 +655,7 @@ public class ExecutionTool { BuildRequest.BuildRequestOptions options = request.getBuildOptions(); boolean keepGoing = request.getViewOptions().keepGoing; - Path actionOutputRoot = env.getDirectories().getActionConsoleOutputDirectory(); + Path actionOutputRoot = env.getActionConsoleOutputDirectory(); Predicate<Action> executionFilter = CheckUpToDateFilter.fromOptions( request.getOptions(ExecutionOptions.class)); diff --git a/src/main/java/com/google/devtools/build/lib/runtime/CommandEnvironment.java b/src/main/java/com/google/devtools/build/lib/runtime/CommandEnvironment.java index 0014eac0be..46c133fcc8 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/CommandEnvironment.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/CommandEnvironment.java @@ -326,6 +326,14 @@ public final class CommandEnvironment { } /** + * Returns the directory where actions' outputs and errors will be written. Is below the directory + * returned by {@link #getExecRoot}. + */ + public Path getActionConsoleOutputDirectory() { + return getDirectories().getActionConsoleOutputDirectory(getExecRoot()); + } + + /** * Returns the working directory of the {@code blaze} client process. * * <p>This may be equal to {@code BlazeRuntime#getWorkspace()}, or beneath it. |