summaryrefslogtreecommitdiff
path: root/src/buildtool/execution_api
AgeCommit message (Collapse)Author
2023-01-18authentication: add TLS and mTLS supportAlberto Sartori
2022-12-21Just-MR: Add utilities library for just-mrPaul Cristian Sarbu
2022-12-21Git CAS: Move Git tree ops to fake repo wrapper classPaul Cristian Sarbu
2022-11-24Fix root directory upload to honor tree invariant.Sascha Roloff
2022-11-21Use the newly-added concept of private-depsKlaus Aehlig
While there, also add all direct dependencies explicitly; using directly dependencies that are pulled in only indireclty causes problems from a maintainability point of view.
2022-11-04Remove unwanted native protocol prefixes from user-visible locationsSascha Roloff
2022-10-19Apply sharding as used in git to files stored in the just cache directory.Sascha Roloff
This commit also introduces an incompatible change, since it modifies the way how files are stored in the just cache directory. This modification reduces the number of files per directory and only introduces a maximum number new directories to avoid possible performance bottlenecks.
2022-10-19Add generation directory as part of the just cache root.Sascha Roloff
This change is introduced to be prepared for future changes such as garbage collection. It is an incompatible change compared to earlier just versions since it modifies the local path to the just cache directory, where among others the CASes, action cache, target-level cache are located.
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-14Fix missing tree handling in BazelCasClient::ReadSingleBlob functionSascha Roloff
The initial assumption before introducing the native remote execution protocol was that only blobs were transmitted over the wire and put in a blob store. With the native remote execution protocol, also trees can be transmitted over the wire and they are put in a different store than blobs. Different hashing functions are used for blobs and trees and need to be calculated accordingly for data to be put in the correct store. This distinction of blobs and trees is now implemented. Additionally, a warning is added that checks equality between the requested digest and the digest computed by the received content. This check makes sense to detect, e.g., corrupted messages, unexpected transmission termination, or remote server failure.
2022-10-12Add copyright and license notice to all source and header filesKlaus Aehlig
Signed-off-by: Goetz Brasche <goetz.brasche@huawei.com>
2022-10-11Refactor ReadTreeInfos function names and add documentationSascha Roloff
2022-10-07Fix upload of known source treesOliver Reiche
When a tree is taken from a git root, it is not necessarily known on the remote site. So, as any missing artifact it has to be uploaded, recursively uploading the parts to keep the tree invariant. The function RetrieveToCas was doing the correct recursiv pattern, however inspecting trees incorrectly using the function ReadTreeInfos; the latter function, however, was obtaining all the leafs of the tree as is needed for a compatible action-input description. Add and use a function that reads the direct contents of a tree.
2022-10-07LocalTreeMap: Drop the use of the map entirelyOliver Reiche
... as for remote execution, the map entries are only used for the `install` subcommand. For local execution, much less tree objects are read from CAS when using this map. However, the performance benefit is barely measurable and therefore we rather remove this map entirely to reduce complexity.
2022-10-07LocalTreeMap: Prevent tree objects from being storedOliver Reiche
... to align with the original idea of caching a flat list of blob objects, without the need to recursively traverse any trees. Consequently, we cannot create any map entry in places where we do not have all sub-tree entries at hand (e.g., LocalAPI, BazelAPI, BazelResponse).
2022-10-07BazelNetwork: Fix use of DirectoryMap in native modeOliver Reiche
... which is not using `Directory` messages nor does it support the `GetTree()` rpc.
2022-10-07Increase log level for grpc-related failures to warningKlaus Aehlig
... so that any infra structure problem on the remote execution is reported by default.
2022-10-07Improve error message on filure to execute a remote actionKlaus Aehlig
... to emphasize that this is the extensional action identifier, not the intensional one.
2022-10-05LocalAction: Improve error message for stagingOliver Reiche
2022-09-13Fix build with gcc/g++Oliver Reiche
2022-09-12Introduced RetrieveToCas function in IExecutionApi to synchronize artifacts ↵Sascha Roloff
between different CASes
2022-09-12BazelApi chunk availability check returns provided ArtifactDigestsSascha Roloff
2022-09-12Removed ArtifactDigest is_tree() predicateSascha Roloff
2022-09-12fix the path of the local tree-cas for compatible modeAlberto Sartori
in daca274041e31636f08927b0cebc56fd33c7bbdf it has been added a local tree-cas. This cas is populated only when just runs in native mode. However, even in compatible mode, a tree must be looked for in the tree-cas. This patch set the path of the tree-cas to be the same of file-cas while running in compatible mode.
2022-09-12Fixed tree handling in compatible mode and added regression testSascha Roloff
2022-08-09RemoteExecutionClient: print debug stringAlberto Sartori
2022-08-05BazelNetwork: Use bytestream for reading unknown size blobsOliver Reiche
... otherwise actual blob size might exceed the maximum transfer size of the CAS client. Therefore, we always have to use the bytestream client if the size is unknown.
2022-08-05Parse git tree objects instead of protobuf messages as action result in ↵Sascha Roloff
native mode
2022-08-05Add more tracing messages to remote execution clientSascha Roloff
2022-08-05Git tree based root digest creationSascha Roloff
2022-08-05BazelResponse: Support collecting output dirs in native modeOliver Reiche
2022-08-05LocalExecution: Use Git tree formatOliver Reiche
- LocalStorage Add tree CAS and support reading Git trees - LocalAction: Create Git tree for output directory - LocalApi: Support availability and upload of Git trees - LocalStorage: Support dumping tree to stream in native mode
2022-08-05LocalCAS: Support storing treesOliver Reiche
2022-08-05CLI: Add flag for dumping raw tree objectsOliver Reiche
2022-08-05BazelMsgFactory: Support dumping Git tree to stringOliver Reiche
2022-08-05BazelMsgFactory: Implement reading object infos from Git treeOliver Reiche
2022-08-05BazelMsgFactory: Implement creating Git tree from fs pathOliver Reiche
2022-08-05Introduced batch availability check for remote execution apiSascha Roloff
2022-08-05Modified artifact digest to provide wire digest on demandSascha Roloff
2022-08-05ExecutionResponse: Fix artifacts reserve sizeOliver Reiche
2022-07-05Remove option --persistentKlaus Aehlig
... as the --request-action-input option provides a clean way of restoring the inputs to a specific action, without the need of interacting with the internal directory structure of the tool. In particular, the new option also works for remote builds.
2022-06-29rename private member in compliance with the used code styleAlberto Sartori
2022-06-28add parenthesis to emphasize the order of evaluationAlberto Sartori
2022-06-22RemoteExecutionClient: Check and log execution statusOliver Reiche
2022-06-20Crypto: Add and use set of globally used hash functionsOliver Reiche
2022-06-13TargetCache: Initial implementationOliver Reiche
2022-06-13RemoteExecutionConfig: Keep global platform propertiesOliver Reiche
... and cache endpoint address for rebuilding.
2022-06-13LocalCAS: Add singleton patternOliver Reiche
2022-06-02Add missing direct dependenciesKlaus Aehlig
2022-05-09log to Error level when remote is unreachableAlberto Sartori