summaryrefslogtreecommitdiff
path: root/src/buildtool/execution_engine
AgeCommit message (Collapse)Author
2024-10-08Name classes, structs and enums using CamelCase.Maksim Denisov
2024-10-07Disable misc-no-recursion checkMaksim Denisov
...since we use recursion for trees a lot, but skip this check manually.
2024-10-07Enable readability-* checks.Maksim Denisov
2024-10-07Enable readability-redundant-member-init check.Maksim Denisov
2024-10-07Enable bugprone-exception-escape checkMaksim Denisov
2024-10-07Enable bugprone-narrowing-conversions checkMaksim Denisov
2024-09-23Reorder dependencies and remove duplicates in OSSMaksim Denisov
2024-09-23Store HashFunction by const reference.Maksim Denisov
Despite the fact that HashFunction is a small type, it still makes sense to store it by reference to reflect the ownership. StorageConfig becomes the main holder. Reference holders store HashFunction by const ref and aren't allowed to change it. However, they are free to return HashFunction by value since this doesn't benefit readability anyhow.
2024-09-18Use TransfromedRange in DAG to return LocalPathsMaksim Denisov
2024-09-17Small code improvements based on lint warningsPaul Cristian Sarbu
- add more noexcept requirements and enforce existing - fixing inconsistencies related to function arguments - remove redundant static keywords - silencing excessive lint reporting in test cases While there, make more getters const ref.
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 Executor based on the hash typeMaksim Denisov
2024-09-13Rename Compatibility class to ProtocolTraitsMaksim Denisov
...and move it to the common stage.
2024-09-13Move to GitHashesConverter functionality related to conversion of git hashesMaksim Denisov
...from Compatibility.
2024-09-11Use ArtifactDigestFactory in executorMaksim Denisov
...to create ArtifactDigests.
2024-09-09Replace ArtifactDigest::CreateMaksim Denisov
...with ArtifactDigestFactory::HashDataAs
2024-08-30Move artifact_blob_container to a standalone libraryMaksim Denisov
2024-08-30Return the IsTree flag from ArtifactDigestMaksim Denisov
...and replace obvious redundant conversions to bazel_re::Digest, which were done to ensure that the digest represents a tree.
2024-08-27Reformat code to comply with clang-format 18Klaus Aehlig
... while keeping our .clang-format file.
2024-08-23Executor: Also report missing output dirsOliver Reiche
2024-08-07Replace classic C boolean operators with keywordsMaksim Denisov
! => not; && => and, || => or
2024-08-01Execution API: support cwdKlaus Aehlig
... following the remote-execution standard that all output paths (but none of the input paths) are relative to the working directory. Therefore, the executor has to do the path translation. For our implementation of the API interface - the local API now handles cwd correctly, - the remote API forwards cwd correctly, and - the git API continues to report actions as not implemented.
2024-07-30Pass ExecutionContext to GraphTraverser and Executor/RebuilderPaul Cristian Sarbu
Also update the classes documentation accordingly.
2024-07-30Add extensible struct to be passed to graph traverserPaul Cristian Sarbu
2024-07-30executor: Use ApiBundlePaul Cristian Sarbu
...instead of separate local and remote instances. For tests, where different implementations of the IExecutionApi interface are used, ApiBundle instances are created by explicitly setting the struct fields instead of using ApiBundle::Create.
2024-07-30Pass RemoteContext to Executor/RebuilderPaul Cristian Sarbu
2024-07-22Pass HashFunction to ExecutorMaksim Denisov
2024-07-22Pass HashFunction to BazelApiMaksim Denisov
2024-07-22Pass HashFunction to ArtifactDigest::CreateMaksim Denisov
2024-07-19Pass RetryConfig instance to ExecutorPaul Cristian Sarbu
2024-07-19Pass RetryConfig instance to BazelApiPaul Cristian Sarbu
2024-07-16Add useful aliases for platform properties and dispatch endpointPaul Cristian Sarbu
2024-07-12Use static Create functions to construct ArtifactDescriptionMaksim Denisov
...instead of unobvious ctors relying on overload resolution.
2024-07-12DAG: remove methods used in tests onlyMaksim Denisov
2024-07-12DAG: remove IsValid since it is used in tests only.Maksim Denisov
2024-07-12DAG: remove unused methodsMaksim Denisov
2024-07-04Replace the Auth and Auth::TLS singletonsPaul Cristian Sarbu
Use a builder pattern for creation and validation, in a manner that allows also other authentication methods to be added in the future besides the current TLS/SSL. The main Auth instances are built early and then passed by not_null const pointers, to avoid passing temporaries, replacing the previous Auth::TLS instances passed by simple nullable const pointers. Where needed, these passed Auth instances are also stored, by const ref. Tests also build Auth instances as needed, either with the default 'no certification' or from the test environment arguments.
2024-07-04Pass Auth::TLS instance to BazelApi and ServeApiPaul Cristian Sarbu
2024-07-04Mark more constructors 'explicit'Paul Cristian Sarbu
Since c++17 the 'explicit' keyword has use also for constructors with more than one argument and it is recommended to use it by default whereever implicit conversions are not expected bahaviour.
2024-06-25Pass IExecutionApi to Executor by refereceMaksim Denisov
...instead of not_null const ptr.
2024-06-25Pass IExecutionApi to IExecutionApi by referenceMaksim Denisov
...instead of not_null const ptr.
2024-06-17executor: properly separate stdout and stderr in log messagesKlaus Aehlig
... about processes producing both, stdout and stderr. By supporting unique readability of the output, we facilitate the understanding of the messages provided by actions.
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-05-28Use ArtifactBlobContainer in IExecutionApiMaksim Denisov
...instead of BazelBlobContainer to not bring bazel_re::Digest to IExecutionApi.
2024-05-28Rename BlobContainer to BazelBlobContainerMaksim Denisov
2024-05-21executor.hpp: fix a typoAlberto Sartori
2024-05-17FileRoot: Fix parsing of ignore-special Git tree rootsPaul Cristian Sarbu
When populating the GitTree instance stored in a Git tree-type FileRoot with the ignore-special flag set, the GitTree instance would be created with an empty raw_id_ field, signaling that some of the entries might have been skipped and thus the root tree id is not anymore in a one-to-one correspondence with the stored list of entries. This however caused FileRoot instances with missing tree id information. This commit fixes the issue by always storing the raw_id_ field as the root id of the Git tree, as well as clarifying the relationship between this field and the ignore_special_ flag, including refactoring the tree id getters.
2024-05-17RepositoryConfig: Instance should not be changed once populatedPaul Cristian Sarbu
Once a RepositoryConfig instance gets populated, it must never be changed again. Therefore, all functions accepting these instances should only take them as pointers to const.
2024-05-03Include environment in action reporting on the command lineKlaus Aehlig
Compared to the command line, the environment usually is quite short. So including it in messages reporting about commands does not introduce a lot of additional noise. However, knowing the environment can help understanding an error message. Therefore, it seems a good trade off to include it. Do so.
2024-04-15executor: Log in caller logger if givenPaul Cristian Sarbu
This means that on the serve endpoint, where a logger for the GraphTraverser is explicitly set, the log messages during action execution is also made available to the client via the CAS-stored analysis and build log blob.