Always propagate some environment variables to RBE
Always propagate LANG, LC_MESSAGES and PYTHONDONTWRITEBYTECODE to RBE to get more consistent behavior between local actions and RBE. Bug: 182415460 Bug: 190593001 Test: treehugger Change-Id: I726e6f02fd3ef77e158baf6fde77ffb7247a1375
This commit is contained in:
parent
a4d9b86c8b
commit
95fad7a56e
3 changed files with 17 additions and 12 deletions
|
@ -361,10 +361,7 @@ func (l *linter) lint(ctx android.ModuleContext) {
|
||||||
Labels: map[string]string{"type": "tool", "name": "lint"},
|
Labels: map[string]string{"type": "tool", "name": "lint"},
|
||||||
ExecStrategy: lintRBEExecStrategy(ctx),
|
ExecStrategy: lintRBEExecStrategy(ctx),
|
||||||
ToolchainInputs: []string{config.JavaCmd(ctx).String()},
|
ToolchainInputs: []string{config.JavaCmd(ctx).String()},
|
||||||
EnvironmentVariables: []string{
|
Platform: map[string]string{remoteexec.PoolKey: pool},
|
||||||
"LANG",
|
|
||||||
},
|
|
||||||
Platform: map[string]string{remoteexec.PoolKey: pool},
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -50,8 +50,14 @@ const (
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
defaultLabels = map[string]string{"type": "tool"}
|
defaultLabels = map[string]string{"type": "tool"}
|
||||||
defaultExecStrategy = LocalExecStrategy
|
defaultExecStrategy = LocalExecStrategy
|
||||||
|
defaultEnvironmentVariables = []string{
|
||||||
|
// This is a subset of the allowlist in ui/build/ninja.go that makes sense remotely.
|
||||||
|
"LANG",
|
||||||
|
"LC_MESSAGES",
|
||||||
|
"PYTHONDONTWRITEBYTECODE",
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
// REParams holds information pertinent to the remote execution of a rule.
|
// REParams holds information pertinent to the remote execution of a rule.
|
||||||
|
@ -149,8 +155,10 @@ func (r *REParams) wrapperArgs() string {
|
||||||
args += " --toolchain_inputs=" + strings.Join(r.ToolchainInputs, ",")
|
args += " --toolchain_inputs=" + strings.Join(r.ToolchainInputs, ",")
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(r.EnvironmentVariables) > 0 {
|
envVarAllowlist := append(r.EnvironmentVariables, defaultEnvironmentVariables...)
|
||||||
args += " --env_var_allowlist=" + strings.Join(r.EnvironmentVariables, ",")
|
|
||||||
|
if len(envVarAllowlist) > 0 {
|
||||||
|
args += " --env_var_allowlist=" + strings.Join(envVarAllowlist, ",")
|
||||||
}
|
}
|
||||||
|
|
||||||
return args + " -- "
|
return args + " -- "
|
||||||
|
|
|
@ -36,7 +36,7 @@ func TestTemplate(t *testing.T) {
|
||||||
PoolKey: "default",
|
PoolKey: "default",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
want: fmt.Sprintf("${android.RBEWrapper} --labels=compiler=clang,lang=cpp,type=compile --platform=\"Pool=default,container-image=%s\" --exec_strategy=local --inputs=$in --output_files=$out -- ", DefaultImage),
|
want: fmt.Sprintf("${android.RBEWrapper} --labels=compiler=clang,lang=cpp,type=compile --platform=\"Pool=default,container-image=%s\" --exec_strategy=local --inputs=$in --output_files=$out --env_var_allowlist=LANG,LC_MESSAGES,PYTHONDONTWRITEBYTECODE -- ", DefaultImage),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "all params",
|
name: "all params",
|
||||||
|
@ -52,7 +52,7 @@ func TestTemplate(t *testing.T) {
|
||||||
PoolKey: "default",
|
PoolKey: "default",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
want: fmt.Sprintf("${android.RBEWrapper} --labels=compiler=clang,lang=cpp,type=compile --platform=\"Pool=default,container-image=%s\" --exec_strategy=remote --inputs=$in --input_list_paths=$out.rsp,out2.rsp --output_files=$out --toolchain_inputs=clang++ -- ", DefaultImage),
|
want: fmt.Sprintf("${android.RBEWrapper} --labels=compiler=clang,lang=cpp,type=compile --platform=\"Pool=default,container-image=%s\" --exec_strategy=remote --inputs=$in --input_list_paths=$out.rsp,out2.rsp --output_files=$out --toolchain_inputs=clang++ --env_var_allowlist=LANG,LC_MESSAGES,PYTHONDONTWRITEBYTECODE -- ", DefaultImage),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
|
@ -74,7 +74,7 @@ func TestNoVarTemplate(t *testing.T) {
|
||||||
PoolKey: "default",
|
PoolKey: "default",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
want := fmt.Sprintf("prebuilts/remoteexecution-client/live/rewrapper --labels=compiler=clang,lang=cpp,type=compile --platform=\"Pool=default,container-image=%s\" --exec_strategy=local --inputs=$in --output_files=$out -- ", DefaultImage)
|
want := fmt.Sprintf("prebuilts/remoteexecution-client/live/rewrapper --labels=compiler=clang,lang=cpp,type=compile --platform=\"Pool=default,container-image=%s\" --exec_strategy=local --inputs=$in --output_files=$out --env_var_allowlist=LANG,LC_MESSAGES,PYTHONDONTWRITEBYTECODE -- ", DefaultImage)
|
||||||
if got := params.NoVarTemplate(DefaultWrapperPath); got != want {
|
if got := params.NoVarTemplate(DefaultWrapperPath); got != want {
|
||||||
t.Errorf("NoVarTemplate() returned\n%s\nwant\n%s", got, want)
|
t.Errorf("NoVarTemplate() returned\n%s\nwant\n%s", got, want)
|
||||||
}
|
}
|
||||||
|
@ -90,7 +90,7 @@ func TestTemplateDeterminism(t *testing.T) {
|
||||||
PoolKey: "default",
|
PoolKey: "default",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
want := fmt.Sprintf("${android.RBEWrapper} --labels=compiler=clang,lang=cpp,type=compile --platform=\"Pool=default,container-image=%s\" --exec_strategy=local --inputs=$in --output_files=$out -- ", DefaultImage)
|
want := fmt.Sprintf("${android.RBEWrapper} --labels=compiler=clang,lang=cpp,type=compile --platform=\"Pool=default,container-image=%s\" --exec_strategy=local --inputs=$in --output_files=$out --env_var_allowlist=LANG,LC_MESSAGES,PYTHONDONTWRITEBYTECODE -- ", DefaultImage)
|
||||||
for i := 0; i < 1000; i++ {
|
for i := 0; i < 1000; i++ {
|
||||||
if got := r.Template(); got != want {
|
if got := r.Template(); got != want {
|
||||||
t.Fatalf("Template() returned\n%s\nwant\n%s", got, want)
|
t.Fatalf("Template() returned\n%s\nwant\n%s", got, want)
|
||||||
|
|
Loading…
Reference in a new issue