diff options
author | Oliver Reiche <oliver.reiche@huawei.com> | 2023-02-21 16:33:05 +0100 |
---|---|---|
committer | Oliver Reiche <oliver.reiche@huawei.com> | 2023-02-22 11:52:39 +0100 |
commit | 2f4a589f869a3667f60499a71eb24c6add533193 (patch) | |
tree | 17902b7cd9bbe40fb8acccfeeb20a76c6b829053 /src/buildtool/execution_api/remote/bazel/bazel_api.cpp | |
parent | 1d954d5a1f06e65b8422b32d53d69db9fed2d60b (diff) | |
download | justbuild-2f4a589f869a3667f60499a71eb24c6add533193.tar.gz |
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.
Diffstat (limited to 'src/buildtool/execution_api/remote/bazel/bazel_api.cpp')
-rw-r--r-- | src/buildtool/execution_api/remote/bazel/bazel_api.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
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()); |