summaryrefslogtreecommitdiff
path: root/src/buildtool/execution_api/remote/bazel/bazel_response.cpp
AgeCommit message (Collapse)Author
9 daysExecutionAPI: Support output_symlinks in responseOliver Reiche
9 daysExecutionApi: Drop DirectorySymlinks from common apiOliver Reiche
... as it is only needed for local execution, there is no need to provide it in the common api interface.
2025-06-04Executor: Check validity of action outputs in compatible modePaul Cristian Sarbu
This ensures that any entries that the standard remote execution protocol accepts but are invalid in justbuild, i.e., upwards symlinks, are rejected. For this purpose, do not fail in the action response instances, just perform the check there, as all required information is available, and set a flag that the executor can check as needed.
2025-06-04{Local,Bazel}Response: Fix logic for marking succesful populationPaul Cristian Sarbu
While in practice a failure to populate the fields of a response happens once per invocation, as it will trigger a failure of the execution, from an algorithmic standpoint the flag to mark a successful population of the response fields should only be set on actual success. Fix this.
2025-03-24BazelResponse: Use non-incremental readingMaksim Denisov
to avoid downloading the same blobs.
2025-03-24Remove redundant UpdateContainerAndUpload.Maksim Denisov
2025-02-27ArtifactBlob: Use static function for constructionMaksim Denisov
2025-02-27ArtifactBlob: Check access to the contentMaksim Denisov
2025-02-27ArtifactBlob: Convert to a classMaksim Denisov
2025-02-27ArtifactBlob: Move from execution_api/common to commonMaksim Denisov
2025-02-07Move implementation of ContentBlob to artifact_blobMaksim Denisov
...and remove ContentBlob.
2025-02-07Rename artifact_blob_container to artifact_blobMaksim Denisov
2025-02-07CommonApi: Remove template parameter from UploadAndUpdateContainerMaksim Denisov
...since it works with ArtifactBlobs only.
2025-02-07BazelNetwork: Use ArtifactBlobs in UploadBlobsMaksim Denisov
2025-02-07BazelNetworkReader: Use ArtifactDigest in IncrementalReaderMaksim Denisov
...and while there, pass digests needed to be read by pointer to IncrementalReader to avoid an extra copy.
2025-02-07BazelNetworkReader: make reading methods that use bazel digest privateMaksim Denisov
2025-02-07Replace ArtifactBlobContainer and BazelBlobContainerMaksim Denisov
...with explicit std::unordered_set.
2025-02-07Replace ContentBlobContainer<T> with std::unordered_setMaksim Denisov
2025-02-07BazelNetwork: Use unordered_set in UploadBlobs instead of BazelBlobContainerMaksim Denisov
2024-11-14execution_api/remote: Implement IWYU suggestionsPaul Cristian Sarbu
2024-09-26Fix automatic moves proposed by clang-tidy.Maksim Denisov
Enable performance-no-automatic-move check.
2024-09-16remote execution: Check validity of symlinksPaul Cristian Sarbu
Invalid entries, currently all upwards symlinks (pending implementation of a better way of handling them), are now identified and handled properly: in compatible mode on the client side, during handling of remote response, and in native mode on the server side during the population of the action result.
2024-09-16bazel_response: Improve error reporting for uploading treesPaul Cristian Sarbu
2024-09-16execution_response: Allow failures to be reported while populatingPaul Cristian Sarbu
As populating the containers from remote response only takes place once, no assumptions should be made that this cannot fail (for example if wrong or invalid entries were produced). Instead, return error messages on failure to callers that can log accordingly.
2024-09-13Check compatibility in BazelAPI based on the hash typeMaksim Denisov
2024-09-13Rename Compatibility class to ProtocolTraitsMaksim Denisov
...and move it to the common stage.
2024-09-09Use ArtifactDigest in BazelApi/BazelResponseMaksim Denisov
2024-09-09Replace ArtifactDigest::CreateMaksim Denisov
...with ArtifactDigestFactory::HashDataAs
2024-08-30Use BazelDigestFactory to create bazel_re::Digest directly if neededMaksim Denisov
...bypassing ArtifactDigest functionality.
2024-08-07Extend BazelNetworkReader to avoid redundant conversionsMaksim Denisov
2024-08-07Avoid deep copies of containers in responses.Maksim Denisov
2024-08-07Remove code duplication in Populate method in responses.Maksim Denisov
2024-07-22Pass HashFunction to BazelNetworkMaksim Denisov
2024-07-22Pass HashFunction to ArtifactDigest::CreateMaksim Denisov
2024-06-07Move reading functionality to BazelNetworkReaderMaksim Denisov
...to enable validation of received blobs.
2024-06-04blob containers: Store and upload taking into account content sizePaul Cristian Sarbu
Update logic populating containers to use the new method which is aware of the maximum transfer limit.
2024-06-04bazel_network: Change UploadBlobs to also accept an rvaluePaul Cristian Sarbu
This unifies the signature of all uploader functions consuming a BlobContainer type.
2024-05-28Use shared_ptr for data in ContentBlobMaksim Denisov
...to reduce the "price" of copying.
2024-05-28Rename BlobContainer to BazelBlobContainerMaksim Denisov
2024-05-27Fix headers in local_cas and bazel_network.Maksim Denisov
2024-04-29bazel_response: Report failure to read stdout/stderr blobs of an actionPaul Cristian Sarbu
2024-03-26Add missing system includesPaul Cristian Sarbu
Main culprits: - std::size_t, std::nullptr_t, and NULL require <cstddef> - std::move and std::forward require <utility> - unordered maps and sets require respective includes - std::for_each and std::all_of require <algorithm>
2024-03-15Clean up more includes and targetsPaul Cristian Sarbu
Some of the more specific issues addressed: - missing log_level target/include - header-only libs wrongly marking deps as private - missing/misplaced gsl includes
2023-06-26Allow non-upwards symlinks with Bazel APIPaul Cristian Sarbu
2023-06-26Execution response: Add output symlink pathsPaul Cristian Sarbu
2023-06-06style: Use designated initializersPaul Cristian Sarbu
This feature has been introduced with C++20.
2023-04-26imports: Switch to Microsoft GSL implementationOliver Reiche
... with two minor code base changes compared to previous use of gsl-lite: - dag.hpp: ActionNode::Ptr and ArtifactNode::Ptr are not wrapped in gsl::not_null<> anymore, due to lack of support for wrapping std::unique_ptr<>. More specifically, the move constructor is missing, rendering it impossible to use std::vector<>::emplace_back(). - utils/cpp/gsl.hpp: New header file added to implement the macros ExpectsAudit() and EnsureAudit(), asserts running only in debug builds, which were available in gsl-lite but are missing in MS GSL.
2023-02-22ExecutionApi: Retrieve to correct CAS directlyOliver Reiche
... 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.
2022-10-14Remove default value of ArtifactDigest::Create template parameterSascha Roloff
This enforces the explicit specification, which object type, either file or tree, should be used to create an artifact digest. This also avoids subtile errors at locations as in the previous commit, where files as well as trees are supposed to be handled, but digest creation mistakenly defaults to file object type.
2022-10-12Add copyright and license notice to all source and header filesKlaus Aehlig
Signed-off-by: Goetz Brasche <goetz.brasche@huawei.com>