Add directory output information to target completion events in BEP.
RELNOTES: None
PiperOrigin-RevId: 294228317
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/TargetCompleteEvent.java b/src/main/java/com/google/devtools/build/lib/analysis/TargetCompleteEvent.java
index a7547f1..b99b6e6 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/TargetCompleteEvent.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/TargetCompleteEvent.java
@@ -390,11 +390,16 @@
builder.setTestTimeoutSeconds(testTimeoutSeconds);
}
+ Iterable<Artifact> filteredImportantArtifacts = getLegacyFilteredImportantArtifacts();
+ for (Artifact artifact : filteredImportantArtifacts) {
+ if (artifact.isDirectory()) {
+ builder.addDirectoryOutput(newFileFromArtifact(artifact).build());
+ }
+ }
// TODO(aehlig): remove direct reporting of artifacts as soon as clients no longer
// need it.
if (converters.getOptions().legacyImportantOutputs) {
- addImportantOutputs(
- completionContext, builder, converters, getLegacyFilteredImportantArtifacts());
+ addImportantOutputs(completionContext, builder, converters, filteredImportantArtifacts);
if (baselineCoverageArtifacts != null) {
addImportantOutputs(
completionContext,
diff --git a/src/main/java/com/google/devtools/build/lib/buildeventstream/proto/build_event_stream.proto b/src/main/java/com/google/devtools/build/lib/buildeventstream/proto/build_event_stream.proto
index 5d675e9..8e901fb 100644
--- a/src/main/java/com/google/devtools/build/lib/buildeventstream/proto/build_event_stream.proto
+++ b/src/main/java/com/google/devtools/build/lib/buildeventstream/proto/build_event_stream.proto
@@ -512,6 +512,11 @@
// new clients should not use it.
repeated File important_output = 4 [deprecated = true];
+ // Report output artifacts (referenced transitively via output_group) which
+ // emit directories instead of singleton files. These directory_output entries
+ // will never include a uri.
+ repeated File directory_output = 8;
+
// List of tags associated with this configured target.
repeated string tag = 3;