From 5d1e72ca41228e28be75a000045606324bd4ba2f Mon Sep 17 00:00:00 2001 From: Sascha Roloff Date: Wed, 30 Apr 2025 17:59:54 +0200 Subject: TreeOperationsUtils: make WriteTree method directly return ObjectInfo instead of ArtifactDigest --- .../tree_operations/tree_operations_utils.cpp | 14 ++++++++------ .../tree_operations/tree_operations_utils.hpp | 2 +- 2 files changed, 9 insertions(+), 7 deletions(-) (limited to 'src/buildtool/execution_engine/tree_operations') 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 { + -> expected { // 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; + -> expected; private: [[nodiscard]] static auto ParseBazelDirectory( -- cgit v1.2.3