From 2f4a589f869a3667f60499a71eb24c6add533193 Mon Sep 17 00:00:00 2001 From: Oliver Reiche Date: Tue, 21 Feb 2023 16:33:05 +0100 Subject: ExecutionApi: Retrieve to correct CAS directly ... by keeping track of each blob being a file or executable and storing it to the correct local physical CAS directory. The new flag is merely a hint and only used by the local execution API. Leaving it out will still correctly transfer the blob but may cause unnecessary duplicates in file CAS. --- src/buildtool/execution_api/remote/bazel/bazel_api.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/buildtool/execution_api/remote/bazel/bazel_api.cpp') diff --git a/src/buildtool/execution_api/remote/bazel/bazel_api.cpp b/src/buildtool/execution_api/remote/bazel/bazel_api.cpp index a192737f..ce25c51c 100644 --- a/src/buildtool/execution_api/remote/bazel/bazel_api.cpp +++ b/src/buildtool/execution_api/remote/bazel/bazel_api.cpp @@ -219,7 +219,9 @@ auto BazelApi::CreateAction( } for (auto& blob : blobs) { try { - container.Emplace(std::move(blob)); + auto exec = IsExecutableObject( + info_map[ArtifactDigest{blob.digest}].type); + container.Emplace(BazelBlob{blob.digest, blob.data, exec}); } catch (std::exception const& ex) { Logger::Log( LogLevel::Error, "failed to emplace blob: ", ex.what()); -- cgit v1.2.3