Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f76b3267 authored by Anas Sulaiman's avatar Anas Sulaiman Committed by Gerrit Code Review
Browse files

Merge "support toggling compare mode for rbe actions" into main

parents b60cd11b 9c493640
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -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,
		})
	}

+11 −0
Original line number Diff line number Diff line
@@ -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, ",")
	}