summaryrefslogtreecommitdiff
path: root/src/buildtool/execution_api/remote/bazel/bazel_action.hpp
diff options
context:
space:
mode:
authorOliver Reiche <oliver.reiche@huawei.com>2025-06-23 14:56:04 +0200
committerOliver Reiche <oliver.reiche@huawei.com>2025-06-24 14:56:58 +0200
commitbbcc5977f49646941ac35060bb74a27eda5fbd76 (patch)
tree4e11ded4722ea740fbeea12510efd34fe698c04b /src/buildtool/execution_api/remote/bazel/bazel_action.hpp
parentc498bf564fa5d781c176f65c7a9a2d43376a81f1 (diff)
downloadjustbuild-bbcc5977f49646941ac35060bb74a27eda5fbd76.tar.gz
ExecutionAPI: Support output_paths in requests
... and prepare local execution for clients using only RBEv2.1 (setting only output_paths).
Diffstat (limited to 'src/buildtool/execution_api/remote/bazel/bazel_action.hpp')
-rw-r--r--src/buildtool/execution_api/remote/bazel/bazel_action.hpp26
1 files changed, 17 insertions, 9 deletions
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 <chrono>
+#include <cstdint>
#include <map>
#include <memory>
#include <optional>
@@ -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<std::string> output_files_;
std::vector<std::string> output_dirs_;
+ std::vector<std::string> output_paths_;
std::vector<bazel_re::Command_EnvironmentVariable> const env_vars_;
std::vector<bazel_re::Platform_Property> const properties_;
CacheFlag cache_flag_{CacheFlag::CacheOutput};
std::chrono::milliseconds timeout_{kDefaultTimeout};
+ RequestMode mode_{};
- explicit BazelAction(
- std::shared_ptr<BazelNetwork> network,
- ArtifactDigest root_digest,
- std::vector<std::string> command,
- std::string cwd,
- std::vector<std::string> output_files,
- std::vector<std::string> output_dirs,
- std::map<std::string, std::string> const& env_vars,
- std::map<std::string, std::string> const& properties) noexcept;
+ explicit BazelAction(std::shared_ptr<BazelNetwork> network,
+ ArtifactDigest root_digest,
+ std::vector<std::string> command,
+ std::string cwd,
+ std::vector<std::string> output_files,
+ std::vector<std::string> output_dirs,
+ std::map<std::string, std::string> const& env_vars,
+ std::map<std::string, std::string> const& properties,
+ bool best_effort) noexcept;
[[nodiscard]] auto CreateBundlesForAction(
std::unordered_set<ArtifactBlob>* blobs,