Add ActionKeyContext to Action#getKey.
This key context can be used by actions to share partial key computations, for instance when computing MD5s for nested sets.
RELNOTES: None
PiperOrigin-RevId: 177359607
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/AnalysisEnvironment.java b/src/main/java/com/google/devtools/build/lib/analysis/AnalysisEnvironment.java
index a121e55..2d7466d 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/AnalysisEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/AnalysisEnvironment.java
@@ -18,6 +18,7 @@
import com.google.common.collect.ImmutableSet;
import com.google.devtools.build.lib.actions.Action;
import com.google.devtools.build.lib.actions.ActionAnalysisMetadata;
+import com.google.devtools.build.lib.actions.ActionKeyContext;
import com.google.devtools.build.lib.actions.ActionRegistry;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.MiddlemanFactory;
@@ -151,4 +152,6 @@
* called after the ConfiguredTarget is created.
*/
ImmutableSet<Artifact> getOrphanArtifacts();
+
+ ActionKeyContext getActionKeyContext();
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java b/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
index a846022..dca8074 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
@@ -1099,10 +1099,15 @@
InconsistentAspectOrderException, ToolchainContextException {
BuildConfiguration targetConfig = target.getConfiguration();
CachingAnalysisEnvironment env =
- new CachingAnalysisEnvironment(getArtifactFactory(),
+ new CachingAnalysisEnvironment(
+ getArtifactFactory(),
+ skyframeExecutor.getActionKeyContext(),
new ConfiguredTargetKey(target.getLabel(), targetConfig),
- /*isSystemEnv=*/false, targetConfig.extendedSanityChecks(), eventHandler,
- /*env=*/null, targetConfig.isActionsEnabled());
+ /*isSystemEnv=*/ false,
+ targetConfig.extendedSanityChecks(),
+ eventHandler,
+ /*env=*/ null,
+ targetConfig.isActionsEnabled());
return getRuleContextForTesting(eventHandler, target, env, configurations);
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/CachingAnalysisEnvironment.java b/src/main/java/com/google/devtools/build/lib/analysis/CachingAnalysisEnvironment.java
index 3d3dfb7..7d17950 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/CachingAnalysisEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/CachingAnalysisEnvironment.java
@@ -19,6 +19,7 @@
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Lists;
import com.google.devtools.build.lib.actions.ActionAnalysisMetadata;
+import com.google.devtools.build.lib.actions.ActionKeyContext;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.ArtifactFactory;
import com.google.devtools.build.lib.actions.ArtifactOwner;
@@ -77,6 +78,8 @@
*/
private final boolean allowRegisteringActions;
+ private final ActionKeyContext actionKeyContext;
+
private boolean enabled = true;
private MiddlemanFactory middlemanFactory;
private ExtendedEventHandler errorEventListener;
@@ -91,6 +94,7 @@
public CachingAnalysisEnvironment(
ArtifactFactory artifactFactory,
+ ActionKeyContext actionKeyContext,
ArtifactOwner owner,
boolean isSystemEnv,
boolean extendedSanityChecks,
@@ -98,6 +102,7 @@
SkyFunction.Environment env,
boolean allowRegisteringActions) {
this.artifactFactory = artifactFactory;
+ this.actionKeyContext = actionKeyContext;
this.owner = Preconditions.checkNotNull(owner);
this.isSystemEnv = isSystemEnv;
this.extendedSanityChecks = extendedSanityChecks;
@@ -191,6 +196,11 @@
}
@Override
+ public ActionKeyContext getActionKeyContext() {
+ return actionKeyContext;
+ }
+
+ @Override
public boolean hasErrors() {
// The system analysis environment never has errors.
if (isSystemEnv) {
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/PseudoAction.java b/src/main/java/com/google/devtools/build/lib/analysis/PseudoAction.java
index 4c85dc0..3f704d2 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/PseudoAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/PseudoAction.java
@@ -17,6 +17,7 @@
import com.google.devtools.build.lib.actions.AbstractAction;
import com.google.devtools.build.lib.actions.ActionExecutionContext;
import com.google.devtools.build.lib.actions.ActionExecutionException;
+import com.google.devtools.build.lib.actions.ActionKeyContext;
import com.google.devtools.build.lib.actions.ActionOwner;
import com.google.devtools.build.lib.actions.ActionResult;
import com.google.devtools.build.lib.actions.Artifact;
@@ -63,7 +64,7 @@
}
@Override
- protected String computeKey() {
+ protected String computeKey(ActionKeyContext actionKeyContext) {
return new Fingerprint().addUUID(uuid).addBytes(getInfo().toByteArray()).hexDigestAndReset();
}
@@ -72,9 +73,9 @@
}
@Override
- public ExtraActionInfo.Builder getExtraActionInfo() {
+ public ExtraActionInfo.Builder getExtraActionInfo(ActionKeyContext actionKeyContext) {
try {
- return super.getExtraActionInfo().setExtension(infoExtension, getInfo());
+ return super.getExtraActionInfo(actionKeyContext).setExtension(infoExtension, getInfo());
} catch (CommandLineExpansionException e) {
throw new AssertionError("PsedoAction command line expansion cannot fail");
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/SourceManifestAction.java b/src/main/java/com/google/devtools/build/lib/analysis/SourceManifestAction.java
index 0fe1ba7..3d9d547 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/SourceManifestAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/SourceManifestAction.java
@@ -18,6 +18,7 @@
import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.actions.ActionExecutionContext;
+import com.google.devtools.build.lib.actions.ActionKeyContext;
import com.google.devtools.build.lib.actions.ActionOwner;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.actions.AbstractFileWriteAction;
@@ -192,7 +193,7 @@
}
@Override
- protected String computeKey() {
+ protected String computeKey(ActionKeyContext actionKeyContext) {
Fingerprint f = new Fingerprint();
f.addString(GUID);
f.addBoolean(runfiles.getLegacyExternalRunfiles());
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/TargetContext.java b/src/main/java/com/google/devtools/build/lib/analysis/TargetContext.java
index e6ea990..85fd697 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/TargetContext.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/TargetContext.java
@@ -17,6 +17,7 @@
import com.google.common.base.Objects;
import com.google.common.base.Verify;
import com.google.common.collect.ImmutableList;
+import com.google.devtools.build.lib.actions.ActionKeyContext;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.analysis.configuredtargets.RuleConfiguredTarget;
import com.google.devtools.build.lib.cmdline.Label;
@@ -71,6 +72,10 @@
return env;
}
+ public ActionKeyContext getActionKeyContext() {
+ return env.getActionKeyContext();
+ }
+
public Target getTarget() {
return target;
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/BinaryFileWriteAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/BinaryFileWriteAction.java
index a11ce1f..0df7abe 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/BinaryFileWriteAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/BinaryFileWriteAction.java
@@ -19,6 +19,7 @@
import com.google.common.io.ByteSource;
import com.google.common.io.ByteStreams;
import com.google.devtools.build.lib.actions.ActionExecutionContext;
+import com.google.devtools.build.lib.actions.ActionKeyContext;
import com.google.devtools.build.lib.actions.ActionOwner;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
@@ -70,7 +71,7 @@
}
@Override
- protected String computeKey() {
+ protected String computeKey(ActionKeyContext actionKeyContext) {
Fingerprint f = new Fingerprint();
f.addString(GUID);
f.addString(String.valueOf(makeExecutable));
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/FileWriteAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/FileWriteAction.java
index c7aa4cb..8fcb74a 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/FileWriteAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/FileWriteAction.java
@@ -18,6 +18,7 @@
import com.google.common.annotations.VisibleForTesting;
import com.google.devtools.build.lib.actions.ActionExecutionContext;
+import com.google.devtools.build.lib.actions.ActionKeyContext;
import com.google.devtools.build.lib.actions.ActionOwner;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.RuleContext;
@@ -224,12 +225,9 @@
};
}
- /**
- * Computes the Action key for this action by computing the fingerprint for
- * the file contents.
- */
+ /** Computes the Action key for this action by computing the fingerprint for the file contents. */
@Override
- protected String computeKey() {
+ protected String computeKey(ActionKeyContext actionKeyContext) {
Fingerprint f = new Fingerprint();
f.addString(GUID);
f.addString(String.valueOf(makeExecutable));
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/LauncherFileWriteAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/LauncherFileWriteAction.java
index ccb045f..d674852 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/LauncherFileWriteAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/LauncherFileWriteAction.java
@@ -18,6 +18,7 @@
import com.google.common.collect.ImmutableList;
import com.google.common.io.ByteStreams;
import com.google.devtools.build.lib.actions.ActionExecutionContext;
+import com.google.devtools.build.lib.actions.ActionKeyContext;
import com.google.devtools.build.lib.actions.ActionOwner;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.RuleContext;
@@ -86,7 +87,7 @@
}
@Override
- protected String computeKey() {
+ protected String computeKey(ActionKeyContext actionKeyContext) {
Fingerprint f = new Fingerprint();
f.addString(GUID);
try {
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/ParameterFileWriteAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/ParameterFileWriteAction.java
index 82fef53..df2b889 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/ParameterFileWriteAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/ParameterFileWriteAction.java
@@ -19,6 +19,7 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.actions.ActionExecutionContext;
+import com.google.devtools.build.lib.actions.ActionKeyContext;
import com.google.devtools.build.lib.actions.ActionOwner;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.Artifact.ArtifactExpander;
@@ -164,7 +165,8 @@
}
@Override
- protected String computeKey() throws CommandLineExpansionException {
+ protected String computeKey(ActionKeyContext actionKeyContext)
+ throws CommandLineExpansionException {
Fingerprint f = new Fingerprint();
f.addString(GUID);
f.addString(String.valueOf(makeExecutable));
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/PopulateTreeArtifactAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/PopulateTreeArtifactAction.java
index 3c73955..5ba555f 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/PopulateTreeArtifactAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/PopulateTreeArtifactAction.java
@@ -25,6 +25,7 @@
import com.google.devtools.build.lib.actions.ActionExecutionMetadata;
import com.google.devtools.build.lib.actions.ActionInput;
import com.google.devtools.build.lib.actions.ActionInputHelper;
+import com.google.devtools.build.lib.actions.ActionKeyContext;
import com.google.devtools.build.lib.actions.ActionOwner;
import com.google.devtools.build.lib.actions.ActionResult;
import com.google.devtools.build.lib.actions.Actions;
@@ -209,7 +210,7 @@
}
@Override
- protected String computeKey() {
+ protected String computeKey(ActionKeyContext actionKeyContext) {
Fingerprint f = new Fingerprint();
f.addString(GUID);
f.addString(getMnemonic());
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 0c91168..74bd33a 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
@@ -30,6 +30,7 @@
import com.google.devtools.build.lib.actions.ActionExecutionException;
import com.google.devtools.build.lib.actions.ActionInput;
import com.google.devtools.build.lib.actions.ActionInputHelper;
+import com.google.devtools.build.lib.actions.ActionKeyContext;
import com.google.devtools.build.lib.actions.ActionOwner;
import com.google.devtools.build.lib.actions.ActionResult;
import com.google.devtools.build.lib.actions.Artifact;
@@ -332,7 +333,8 @@
}
@Override
- protected String computeKey() throws CommandLineExpansionException {
+ protected String computeKey(ActionKeyContext actionKeyContext)
+ throws CommandLineExpansionException {
Fingerprint f = new Fingerprint();
f.addString(GUID);
f.addStrings(argv.arguments());
@@ -397,8 +399,9 @@
}
@Override
- public ExtraActionInfo.Builder getExtraActionInfo() throws CommandLineExpansionException {
- ExtraActionInfo.Builder builder = super.getExtraActionInfo();
+ public ExtraActionInfo.Builder getExtraActionInfo(ActionKeyContext actionKeyContext)
+ throws CommandLineExpansionException {
+ ExtraActionInfo.Builder builder = super.getExtraActionInfo(actionKeyContext);
if (extraActionInfoSupplier == null) {
SpawnInfo spawnInfo = getExtraActionSpawnInfo();
return builder
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkAction.java
index 819c0c1..645cd6f 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkAction.java
@@ -20,6 +20,7 @@
import com.google.devtools.build.lib.actions.AbstractAction;
import com.google.devtools.build.lib.actions.ActionExecutionContext;
import com.google.devtools.build.lib.actions.ActionExecutionException;
+import com.google.devtools.build.lib.actions.ActionKeyContext;
import com.google.devtools.build.lib.actions.ActionOwner;
import com.google.devtools.build.lib.actions.ActionResult;
import com.google.devtools.build.lib.actions.Artifact;
@@ -128,7 +129,7 @@
}
@Override
- protected String computeKey() {
+ protected String computeKey(ActionKeyContext actionKeyContext) {
Fingerprint f = new Fingerprint();
f.addString(GUID);
// We don't normally need to add inputs to the key. In this case, however, the inputPath can be
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkTreeAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkTreeAction.java
index d066586..d0600db 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkTreeAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkTreeAction.java
@@ -19,6 +19,7 @@
import com.google.devtools.build.lib.actions.AbstractAction;
import com.google.devtools.build.lib.actions.ActionExecutionContext;
import com.google.devtools.build.lib.actions.ActionExecutionException;
+import com.google.devtools.build.lib.actions.ActionKeyContext;
import com.google.devtools.build.lib.actions.ActionOwner;
import com.google.devtools.build.lib.actions.ActionResult;
import com.google.devtools.build.lib.actions.Artifact;
@@ -109,7 +110,7 @@
}
@Override
- protected String computeKey() {
+ protected String computeKey(ActionKeyContext actionKeyContext) {
Fingerprint f = new Fingerprint();
f.addString(GUID);
f.addInt(filesetTree ? 1 : 0);
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/TemplateExpansionAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/TemplateExpansionAction.java
index 4be2446..6441291 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/TemplateExpansionAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/TemplateExpansionAction.java
@@ -21,6 +21,7 @@
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.actions.ActionExecutionContext;
+import com.google.devtools.build.lib.actions.ActionKeyContext;
import com.google.devtools.build.lib.actions.ActionOwner;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.cmdline.Label;
@@ -438,7 +439,7 @@
}
@Override
- protected String computeKey() {
+ protected String computeKey(ActionKeyContext actionKeyContext) {
Fingerprint f = new Fingerprint();
f.addString(GUID);
f.addString(String.valueOf(makeExecutable));
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/extra/ExtraActionInfoFileWriteAction.java b/src/main/java/com/google/devtools/build/lib/analysis/extra/ExtraActionInfoFileWriteAction.java
index c82cf95..5267e7d 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/extra/ExtraActionInfoFileWriteAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/extra/ExtraActionInfoFileWriteAction.java
@@ -17,6 +17,7 @@
import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.actions.Action;
import com.google.devtools.build.lib.actions.ActionExecutionContext;
+import com.google.devtools.build.lib.actions.ActionKeyContext;
import com.google.devtools.build.lib.actions.ActionOwner;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.CommandLineExpansionException;
@@ -50,18 +51,20 @@
public DeterministicWriter newDeterministicWriter(ActionExecutionContext ctx)
throws IOException, InterruptedException, ExecException {
try {
- return new ProtoDeterministicWriter(shadowedAction.getExtraActionInfo().build());
+ return new ProtoDeterministicWriter(
+ shadowedAction.getExtraActionInfo(ctx.getActionKeyContext()).build());
} catch (CommandLineExpansionException e) {
throw new UserExecException(e);
}
}
@Override
- protected String computeKey() throws CommandLineExpansionException {
+ protected String computeKey(ActionKeyContext actionKeyContext)
+ throws CommandLineExpansionException {
Fingerprint f = new Fingerprint();
f.addString(UUID);
- f.addString(shadowedAction.getKey());
- f.addBytes(shadowedAction.getExtraActionInfo().build().toByteArray());
+ f.addString(shadowedAction.getKey(actionKeyContext));
+ f.addBytes(shadowedAction.getExtraActionInfo(actionKeyContext).build().toByteArray());
return f.hexDigestAndReset();
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/extra/ExtraActionSpec.java b/src/main/java/com/google/devtools/build/lib/analysis/extra/ExtraActionSpec.java
index c613ec5..3d737a1 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/extra/ExtraActionSpec.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/extra/ExtraActionSpec.java
@@ -18,6 +18,7 @@
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.devtools.build.lib.actions.Action;
+import com.google.devtools.build.lib.actions.ActionKeyContext;
import com.google.devtools.build.lib.actions.ActionOwner;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.RunfilesSupplier;
@@ -127,8 +128,10 @@
// Multiple actions in the same configured target need to have different names for the artifact
// that might be created here, so we append something that should be unique for each action.
- String actionUniquifier = actionToShadow.getPrimaryOutput().getExecPath().getBaseName() + "."
- + actionToShadow.getKey();
+ String actionUniquifier =
+ actionToShadow.getPrimaryOutput().getExecPath().getBaseName()
+ + "."
+ + actionToShadow.getKey(owningRule.getActionKeyContext());
List<String> argv = commandHelper.buildCommandLine(command, extraActionInputs,
"." + actionUniquifier + ".extra_action_script.sh", executionInfo);
@@ -188,7 +191,8 @@
*/
private Artifact getExtraActionOutputArtifact(
RuleContext ruleContext, Action action, String template) {
- String actionId = getActionId(ruleContext.getActionOwner(), action);
+ String actionId =
+ getActionId(ruleContext.getActionKeyContext(), ruleContext.getActionOwner(), action);
template = template.replace("$(ACTION_ID)", actionId);
template = template.replace("$(OWNER_LABEL_DIGEST)", getOwnerDigest(ruleContext));
@@ -224,14 +228,14 @@
/**
* Creates a unique id for the action shadowed by this extra_action.
*
- * We need to have a unique id for the extra_action to use. We build this
- * from the owner's label and the shadowed action id (which is only
- * guaranteed to be unique per target). Together with the subfolder
- * matching the original target's package name, we believe this is enough
- * of a uniqueness guarantee.
+ * <p>We need to have a unique id for the extra_action to use. We build this from the owner's
+ * label and the shadowed action id (which is only guaranteed to be unique per target). Together
+ * with the subfolder matching the original target's package name, we believe this is enough of a
+ * uniqueness guarantee.
*/
@VisibleForTesting
- public static String getActionId(ActionOwner owner, Action action) {
+ public static String getActionId(
+ ActionKeyContext actionKeyContext, ActionOwner owner, Action action) {
Fingerprint f = new Fingerprint();
f.addString(owner.getLabel().toString());
ImmutableList<AspectDescriptor> aspectDescriptors = owner.getAspectDescriptors();
@@ -239,7 +243,7 @@
for (AspectDescriptor aspectDescriptor : aspectDescriptors) {
f.addString(aspectDescriptor.getDescription());
}
- f.addString(action.getKey());
+ f.addString(action.getKey(actionKeyContext));
return f.hexDigestAndReset();
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/test/BaselineCoverageAction.java b/src/main/java/com/google/devtools/build/lib/analysis/test/BaselineCoverageAction.java
index 2953ed6..172d5b2 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/test/BaselineCoverageAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/test/BaselineCoverageAction.java
@@ -19,6 +19,7 @@
import com.google.common.collect.Iterables;
import com.google.common.eventbus.EventBus;
import com.google.devtools.build.lib.actions.ActionExecutionContext;
+import com.google.devtools.build.lib.actions.ActionKeyContext;
import com.google.devtools.build.lib.actions.ActionOwner;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.NotifyOnActionCacheHit;
@@ -58,7 +59,7 @@
}
@Override
- public String computeKey() {
+ public String computeKey(ActionKeyContext actionKeyContext) {
return new Fingerprint()
.addStrings(getInstrumentedFilePathStrings())
.hexDigestAndReset();
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/test/InstrumentedFileManifestAction.java b/src/main/java/com/google/devtools/build/lib/analysis/test/InstrumentedFileManifestAction.java
index 35350f0..628be6c 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/test/InstrumentedFileManifestAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/test/InstrumentedFileManifestAction.java
@@ -21,6 +21,7 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.actions.ActionExecutionContext;
+import com.google.devtools.build.lib.actions.ActionKeyContext;
import com.google.devtools.build.lib.actions.ActionOwner;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.RuleContext;
@@ -77,7 +78,7 @@
}
@Override
- protected String computeKey() {
+ protected String computeKey(ActionKeyContext actionKeyContext) {
Fingerprint f = new Fingerprint();
f.addString(GUID);
// Not sorting here is probably cheaper, though it might lead to unnecessary re-execution.
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/test/TestRunnerAction.java b/src/main/java/com/google/devtools/build/lib/analysis/test/TestRunnerAction.java
index 0ea1f92..34e4311 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/test/TestRunnerAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/test/TestRunnerAction.java
@@ -25,6 +25,7 @@
import com.google.devtools.build.lib.actions.ActionExecutionException;
import com.google.devtools.build.lib.actions.ActionInput;
import com.google.devtools.build.lib.actions.ActionInputHelper;
+import com.google.devtools.build.lib.actions.ActionKeyContext;
import com.google.devtools.build.lib.actions.ActionOwner;
import com.google.devtools.build.lib.actions.ActionResult;
import com.google.devtools.build.lib.actions.Artifact;
@@ -229,7 +230,8 @@
}
@Override
- protected String computeKey() throws CommandLineExpansionException {
+ protected String computeKey(ActionKeyContext actionKeyContext)
+ throws CommandLineExpansionException {
Fingerprint f = new Fingerprint();
f.addString(GUID);
f.addStrings(executionSettings.getArgs().arguments());