summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaksim Denisov <denisov.maksim@huawei.com>2024-09-11 17:17:48 +0200
committerMaksim Denisov <denisov.maksim@huawei.com>2024-09-13 14:41:00 +0200
commit3dba6aebaa9a7a367190563adea07f0278868998 (patch)
treed89c13483beb9a3233abf503812fcfcb779e30b3 /src
parent371d4357eeaa498541473b18bd092975d05fb930 (diff)
downloadjustbuild-3dba6aebaa9a7a367190563adea07f0278868998.tar.gz
Check compatibility in BazelAPI based on the hash type
Diffstat (limited to 'src')
-rw-r--r--src/buildtool/execution_api/remote/bazel/bazel_api.cpp33
-rw-r--r--src/buildtool/execution_api/remote/bazel/bazel_response.cpp2
2 files changed, 17 insertions, 18 deletions
diff --git a/src/buildtool/execution_api/remote/bazel/bazel_api.cpp b/src/buildtool/execution_api/remote/bazel/bazel_api.cpp
index d0e96292..07c5c3ef 100644
--- a/src/buildtool/execution_api/remote/bazel/bazel_api.cpp
+++ b/src/buildtool/execution_api/remote/bazel/bazel_api.cpp
@@ -527,24 +527,23 @@ auto BazelApi::CreateAction(
return std::nullopt;
}
- if (ProtocolTraits::Instance().IsCompatible()) {
- return CommonUploadTreeCompatible(
- *this,
- *build_root,
- [&network = network_](
- std::vector<ArtifactDigest> const& digests,
- gsl::not_null<std::vector<std::string>*> const& targets) {
- auto reader = network->CreateReader();
- targets->reserve(digests.size());
- for (auto blobs : reader.ReadIncrementally(digests)) {
- for (auto const& blob : blobs) {
- targets->emplace_back(*blob.data);
- }
- }
- });
+ if (ProtocolTraits::IsNative(network_->GetHashFunction().GetType())) {
+ return CommonUploadTreeNative(*this, *build_root);
}
-
- return CommonUploadTreeNative(*this, *build_root);
+ return CommonUploadTreeCompatible(
+ *this,
+ *build_root,
+ [&network = network_](
+ std::vector<ArtifactDigest> const& digests,
+ gsl::not_null<std::vector<std::string>*> const& targets) {
+ auto reader = network->CreateReader();
+ targets->reserve(digests.size());
+ for (auto blobs : reader.ReadIncrementally(digests)) {
+ for (auto const& blob : blobs) {
+ targets->emplace_back(*blob.data);
+ }
+ }
+ });
}
[[nodiscard]] auto BazelApi::IsAvailable(
diff --git a/src/buildtool/execution_api/remote/bazel/bazel_response.cpp b/src/buildtool/execution_api/remote/bazel/bazel_response.cpp
index cb481e3e..c536f5dd 100644
--- a/src/buildtool/execution_api/remote/bazel/bazel_response.cpp
+++ b/src/buildtool/execution_api/remote/bazel/bazel_response.cpp
@@ -135,7 +135,7 @@ void BazelResponse::Populate() noexcept {
}
}
- if (not ProtocolTraits::Instance().IsCompatible()) {
+ if (ProtocolTraits::IsNative(hash_type)) {
// in native mode: just collect and store tree digests
for (auto const& tree : action_result.output_directories()) {
auto digest =