From bbcc5977f49646941ac35060bb74a27eda5fbd76 Mon Sep 17 00:00:00 2001 From: Oliver Reiche Date: Mon, 23 Jun 2025 14:56:04 +0200 Subject: ExecutionAPI: Support output_paths in requests ... and prepare local execution for clients using only RBEv2.1 (setting only output_paths). --- .../execution_api/remote/bazel/bazel_action.hpp | 26 ++++++++++++++-------- 1 file changed, 17 insertions(+), 9 deletions(-) (limited to 'src/buildtool/execution_api/remote/bazel/bazel_action.hpp') diff --git a/src/buildtool/execution_api/remote/bazel/bazel_action.hpp b/src/buildtool/execution_api/remote/bazel/bazel_action.hpp index 08cb338c..ea3c4b53 100644 --- a/src/buildtool/execution_api/remote/bazel/bazel_action.hpp +++ b/src/buildtool/execution_api/remote/bazel/bazel_action.hpp @@ -16,6 +16,7 @@ #define INCLUDED_SRC_BUILDTOOL_EXECUTION_API_REMOTE_BAZEL_BAZEL_ACTION_HPP #include +#include #include #include #include @@ -36,6 +37,11 @@ class BazelAction final : public IExecutionAction { friend class BazelApi; + enum class RequestMode : std::uint8_t { + kV2_0, // RBEv2.0 + kBestEffort // RBEv2.0 and >=RBEv2.1, let the server pick + }; + public: auto Execute(Logger const* logger) noexcept -> IExecutionResponse::Ptr final; @@ -51,20 +57,22 @@ class BazelAction final : public IExecutionAction { std::string const cwd_; std::vector output_files_; std::vector output_dirs_; + std::vector output_paths_; std::vector const env_vars_; std::vector const properties_; CacheFlag cache_flag_{CacheFlag::CacheOutput}; std::chrono::milliseconds timeout_{kDefaultTimeout}; + RequestMode mode_{}; - explicit BazelAction( - std::shared_ptr network, - ArtifactDigest root_digest, - std::vector command, - std::string cwd, - std::vector output_files, - std::vector output_dirs, - std::map const& env_vars, - std::map const& properties) noexcept; + explicit BazelAction(std::shared_ptr network, + ArtifactDigest root_digest, + std::vector command, + std::string cwd, + std::vector output_files, + std::vector output_dirs, + std::map const& env_vars, + std::map const& properties, + bool best_effort) noexcept; [[nodiscard]] auto CreateBundlesForAction( std::unordered_set* blobs, -- cgit v1.2.3