From d27a97669f8a67619cda94d809ab6437ebdbc7f5 Mon Sep 17 00:00:00 2001 From: Fabian Meumertzheim Date: Thu, 19 Sep 2024 05:19:04 -0700 Subject: [PATCH] Fetch extra action outputs with `--remote_download_toplevel` This allows Kythe extraction to work with BwoB. Closes #23669. PiperOrigin-RevId: 676371827 Change-Id: I354cb9b9c0ec3511c6d866956fca1ff06a27cfab --- .../java/com/google/devtools/build/lib/remote/BUILD | 1 + .../devtools/build/lib/remote/RemoteOutputChecker.java | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/src/main/java/com/google/devtools/build/lib/remote/BUILD b/src/main/java/com/google/devtools/build/lib/remote/BUILD index 4a56454fac3717..15c2eac4156f5f 100644 --- a/src/main/java/com/google/devtools/build/lib/remote/BUILD +++ b/src/main/java/com/google/devtools/build/lib/remote/BUILD @@ -208,6 +208,7 @@ java_library( "//src/main/java/com/google/devtools/build/lib/actions:file_metadata", "//src/main/java/com/google/devtools/build/lib/analysis:analysis_cluster", "//src/main/java/com/google/devtools/build/lib/analysis:configured_target", + "//src/main/java/com/google/devtools/build/lib/analysis:extra_action_artifacts_provider", "//src/main/java/com/google/devtools/build/lib/analysis:provider_collection", "//src/main/java/com/google/devtools/build/lib/analysis:top_level_artifact_context", "//src/main/java/com/google/devtools/build/lib/clock", diff --git a/src/main/java/com/google/devtools/build/lib/remote/RemoteOutputChecker.java b/src/main/java/com/google/devtools/build/lib/remote/RemoteOutputChecker.java index 5d9d9d024ae444..4493e46b020553 100644 --- a/src/main/java/com/google/devtools/build/lib/remote/RemoteOutputChecker.java +++ b/src/main/java/com/google/devtools/build/lib/remote/RemoteOutputChecker.java @@ -27,6 +27,7 @@ import com.google.devtools.build.lib.analysis.AnalysisResult; import com.google.devtools.build.lib.analysis.ConfiguredAspect; import com.google.devtools.build.lib.analysis.ConfiguredTarget; +import com.google.devtools.build.lib.analysis.ExtraActionArtifactsProvider; import com.google.devtools.build.lib.analysis.FilesToRunProvider; import com.google.devtools.build.lib.analysis.ProviderCollection; import com.google.devtools.build.lib.analysis.TopLevelArtifactContext; @@ -170,6 +171,7 @@ private void addTopLevelTarget( .getImportantArtifacts(); addOutputsToDownload(artifactsToBuild.toList()); addRunfiles(target); + addExtraActionArtifacts(target); } } @@ -205,6 +207,14 @@ private void addRunfiles(ProviderCollection buildTarget) { } } + private void addExtraActionArtifacts(ProviderCollection target) { + ExtraActionArtifactsProvider extraActionArtifactsProvider = + target.getProvider(ExtraActionArtifactsProvider.class); + if (extraActionArtifactsProvider != null) { + addOutputsToDownload(extraActionArtifactsProvider.getExtraActionArtifacts().toList()); + } + } + private void addTargetUnderTest(ProviderCollection target) { TestProvider testProvider = checkNotNull(target.getProvider(TestProvider.class)); if (outputsMode != RemoteOutputsMode.MINIMAL && commandMode == CommandMode.TEST) {