support toggling compare mode for rbe actions
This allows me to set metalava actions to run remotely (already toggleable) with local comparison (this CL). Change-Id: I66b006d5ee11b3192ef81a2e5cefc07e9f3d10a2
This commit is contained in:
parent
d7471ec5cc
commit
9c4936405e
2 changed files with 16 additions and 0 deletions
|
@ -19,6 +19,7 @@ import (
|
|||
"path/filepath"
|
||||
"regexp"
|
||||
"sort"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/google/blueprint/proptools"
|
||||
|
@ -497,6 +498,7 @@ func metalavaCmd(ctx android.ModuleContext, rule *android.RuleBuilder, javaVersi
|
|||
if metalavaUseRbe(ctx) {
|
||||
rule.Remoteable(android.RemoteRuleSupports{RBE: true})
|
||||
execStrategy := ctx.Config().GetenvWithDefault("RBE_METALAVA_EXEC_STRATEGY", remoteexec.LocalExecStrategy)
|
||||
compare, _ := strconv.ParseBool(ctx.Config().GetenvWithDefault("RBE_METALAVA_COMPARE", "false"))
|
||||
labels := map[string]string{"type": "tool", "name": "metalava"}
|
||||
// TODO: metalava pool rejects these jobs
|
||||
pool := ctx.Config().GetenvWithDefault("RBE_METALAVA_POOL", "java16")
|
||||
|
@ -505,6 +507,9 @@ func metalavaCmd(ctx android.ModuleContext, rule *android.RuleBuilder, javaVersi
|
|||
ExecStrategy: execStrategy,
|
||||
ToolchainInputs: []string{config.JavaCmd(ctx).String()},
|
||||
Platform: map[string]string{remoteexec.PoolKey: pool},
|
||||
Compare: compare,
|
||||
NumLocalRuns: 1,
|
||||
NumRemoteRuns: 1,
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
package remoteexec
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"sort"
|
||||
"strings"
|
||||
)
|
||||
|
@ -84,6 +85,12 @@ type REParams struct {
|
|||
// EnvironmentVariables is a list of environment variables whose values should be passed through
|
||||
// to the remote execution.
|
||||
EnvironmentVariables []string
|
||||
// Boolean indicating whether to compare chosen exec strategy with local execution.
|
||||
Compare bool
|
||||
// Number of times the action should be rerun locally.
|
||||
NumLocalRuns int
|
||||
// Number of times the action should be rerun remotely.
|
||||
NumRemoteRuns int
|
||||
}
|
||||
|
||||
func init() {
|
||||
|
@ -135,6 +142,10 @@ func (r *REParams) wrapperArgs() string {
|
|||
}
|
||||
args += " --exec_strategy=" + strategy
|
||||
|
||||
if r.Compare && r.NumLocalRuns >= 0 && r.NumRemoteRuns >= 0 {
|
||||
args += fmt.Sprintf(" --compare=true --num_local_reruns=%d --num_remote_reruns=%d", r.NumLocalRuns, r.NumRemoteRuns)
|
||||
}
|
||||
|
||||
if len(r.Inputs) > 0 {
|
||||
args += " --inputs=" + strings.Join(r.Inputs, ",")
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue