summaryrefslogtreecommitdiff
path: root/src/buildtool/execution_engine/tree_operations
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildtool/execution_engine/tree_operations')
-rw-r--r--src/buildtool/execution_engine/tree_operations/tree_operations_utils.cpp14
-rw-r--r--src/buildtool/execution_engine/tree_operations/tree_operations_utils.hpp2
2 files changed, 9 insertions, 7 deletions
diff --git a/src/buildtool/execution_engine/tree_operations/tree_operations_utils.cpp b/src/buildtool/execution_engine/tree_operations/tree_operations_utils.cpp
index e1bd60b6..88e828bd 100644
--- a/src/buildtool/execution_engine/tree_operations/tree_operations_utils.cpp
+++ b/src/buildtool/execution_engine/tree_operations/tree_operations_utils.cpp
@@ -225,7 +225,7 @@ auto TreeOperationsUtils::SerializeGitTree(
auto TreeOperationsUtils::WriteTree(IExecutionApi const& api,
TreeEntries const& tree_entries) noexcept
- -> expected<ArtifactDigest, std::string> {
+ -> expected<Artifact::ObjectInfo, std::string> {
// Serialize tree entries.
auto tree_data = ProtocolTraits::IsNative(api.GetHashType())
? SerializeGitTree(tree_entries)
@@ -242,7 +242,8 @@ auto TreeOperationsUtils::WriteTree(IExecutionApi const& api,
return unexpected{fmt::format("Failed to create tree blob")};
}
if (api.Upload(std::unordered_set{*tree_blob})) {
- return tree_blob->GetDigest();
+ return Artifact::ObjectInfo{.digest = tree_blob->GetDigest(),
+ .type = ObjectType::Tree};
}
return unexpected{fmt::format("Failed to upload tree blob")};
}
@@ -326,11 +327,12 @@ auto TreeOperationsUtils::ComputeTreeOverlay(
}
// Write tree overlay.
- auto digest = WriteTree(api, overlay_tree);
- auto overlay_tree_info = Artifact::ObjectInfo{.digest = *std::move(digest),
- .type = ObjectType::Tree};
+ auto overlay_tree_info = WriteTree(api, overlay_tree);
+ if (not overlay_tree_info) {
+ return unexpected{overlay_tree_info.error()};
+ }
Logger::Log(LogLevel::Trace,
"Tree overlay result: {}",
- overlay_tree_info.ToString());
+ overlay_tree_info->ToString());
return overlay_tree_info;
}
diff --git a/src/buildtool/execution_engine/tree_operations/tree_operations_utils.hpp b/src/buildtool/execution_engine/tree_operations/tree_operations_utils.hpp
index 1315ad5c..072ce8c8 100644
--- a/src/buildtool/execution_engine/tree_operations/tree_operations_utils.hpp
+++ b/src/buildtool/execution_engine/tree_operations/tree_operations_utils.hpp
@@ -63,7 +63,7 @@ class TreeOperationsUtils final {
[[nodiscard]] static auto WriteTree(
IExecutionApi const& api,
TreeEntries const& tree_entries) noexcept
- -> expected<ArtifactDigest, std::string>;
+ -> expected<Artifact::ObjectInfo, std::string>;
private:
[[nodiscard]] static auto ParseBazelDirectory(