diff options
author | Klaus Aehlig <aehlig@google.com> | 2016-11-07 12:30:13 +0000 |
---|---|---|
committer | Klaus Aehlig <aehlig@google.com> | 2016-11-07 14:01:50 +0000 |
commit | efdfff2aecdf4584b9ddda40ba1d8f106167b1e0 (patch) | |
tree | 1535c439d84fdb567ead552c7f6d25302d4347ef /src/main/java/com/google | |
parent | b043fafb957ae8038088e427ff27a5c9f951c979 (diff) |
For SpawnActions, also honor the dynamic environment
For SpawnActions, depending on the value of use_default_shell_env,
the specified environment is taken. The shell environment, however,
consists of two parts: a static mapping of variables to values, and
a set of variables where the value is to be taken from the client
environment. Make sure, both parts are set correctly. Fixes #2035.
--
Change-Id: I32253e9bf651b18ca25107edc5fc839813905726
Reviewed-on: https://bazel-review.googlesource.com/#/c/7211
MOS_MIGRATED_REVID=138376914
Diffstat (limited to 'src/main/java/com/google')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java | 7 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnActionTemplate.java | 3 |
2 files changed, 8 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java index 8ee985891e..b452b470ba 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java @@ -595,6 +595,7 @@ public class SpawnAction extends AbstractAction implements ExecutionInfoSpecifie buildSpawnAction( owner, configuration.getLocalShellEnvironment(), + configuration.getVariableShellEnvironment(), configuration.getShellExecutable(), paramsFile, paramFileWriteAction)); @@ -627,6 +628,7 @@ public class SpawnAction extends AbstractAction implements ExecutionInfoSpecifie SpawnAction buildSpawnAction( ActionOwner owner, @Nullable Map<String, String> defaultShellEnvironment, + @Nullable Set<String> variableShellEnvironment, @Nullable PathFragment defaultShellExecutable, @Nullable Artifact paramsFile, @Nullable ParameterFileWriteAction paramFileWriteAction) { @@ -657,10 +659,13 @@ public class SpawnAction extends AbstractAction implements ExecutionInfoSpecifie inputAndToolManifests.putAll(toolManifests); Map<String, String> env; + Set<String> clientEnv; if (useDefaultShellEnvironment) { env = Preconditions.checkNotNull(defaultShellEnvironment); + clientEnv = Preconditions.checkNotNull(variableShellEnvironment); } else { env = this.environment; + clientEnv = this.clientEnvironmentVariables; } if (disableSandboxing) { @@ -678,7 +683,7 @@ public class SpawnAction extends AbstractAction implements ExecutionInfoSpecifie resourceSet, actualCommandLine, ImmutableMap.copyOf(env), - clientEnvironmentVariables, + ImmutableSet.copyOf(clientEnv), ImmutableMap.copyOf(executionInfo), progressMessage, ImmutableMap.copyOf(inputAndToolManifests), diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnActionTemplate.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnActionTemplate.java index 65724891bc..4587e4a133 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnActionTemplate.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnActionTemplate.java @@ -165,6 +165,7 @@ public final class SpawnActionTemplate implements ActionAnalysisMetadata { return actionBuilder.buildSpawnAction( getOwner(), /*defaultShellEnvironment=*/ null, + /*variableShellEnvironment=*/ null, /*defaultShellExecutable=*/ null, /*paramsFile=*/ null, /*paramFileWriteAction=*/ null); @@ -266,7 +267,7 @@ public final class SpawnActionTemplate implements ActionAnalysisMetadata { @Override public Iterable<String> getClientEnvironmentVariables() { return spawnActionBuilder - .buildSpawnAction(getOwner(), null, null, null, null) + .buildSpawnAction(getOwner(), null, null, null, null, null) .getClientEnvironmentVariables(); } |