summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2024-08-22Remote-execution properties: restore the latest-wins semanticsKlaus Aehlig
... that was accidentially replaced by a first-wins semantics in 62d204ff4cc94c12c1635f189255710901682825 which fortunately did not make it to any release.
2024-08-14expression language: add nub_leftKlaus Aehlig
Originally, the expression lanuage only contained a function to deduplicate a list, keeping only the right-most occurence. The reason was that this is the order needed for linking: a library providing an open symbol has to come on the command line after the library using that symbol (and hence making it an open symbol). However, by now use cases have emerged that require a topological sorting where definition comes before use; also, when composing the value of PATH from fragments, we usually want to keep the first occurrence in order for it to take precedence. Therefore, also add "nub_left" as built-in function, allowing a more condense (and slightly more efficient) description in rules instead of the revserse-nub_right-reverse pattern.
2024-08-14absent_target_map: fix private hdrsKlaus Aehlig
... and, in particular, do not include headers of other libraries that are not even needed.
2024-08-07Remove code duplication from SourceTreeServiceMaksim Denisov
2024-08-07Remove code duplication from CasServerMaksim Denisov
2024-08-07Pass a longrunning operation to ExecutionServer::WriteResult by rvalueMaksim Denisov
2024-08-07ExecutionServer: use one method for conversion to IExecutionActionMaksim Denisov
2024-08-07ExecutionServer: use one method for conversion to bazel ExecuteResponseMaksim Denisov
2024-08-07ExecutionServer: Move creation of ActionResult to a static functionMaksim Denisov
2024-08-07ExecutionServer: move creation of bazel instances to functionsMaksim Denisov
2024-08-07Remove ExecutionServiceImpl::StoreActionResult methodMaksim Denisov
...and move the storing logic to Execute directly. There is no need to pass additional parameters to the method to just perform a check inside, and after this removal there is no need to preserve a one-line method.
2024-08-07Use expected to return errors from ExecutionServiceImpl's methodsMaksim Denisov
2024-08-07ExecutionServer: remove redundant scopesMaksim Denisov
2024-08-07Refactor read/write logic in BytestreamServerMaksim Denisov
1. In reading remove additional buffer field and reuse the response's buffer; 2. In writing preserve the file descriptor alive.
2024-08-07Extend BazelNetworkReader to avoid redundant conversionsMaksim Denisov
2024-08-07Generate bazel trees in LocalCasReaderMaksim Denisov
...and use this functionality in ExecutionServer
2024-08-07Remove HashFunction field from LocalACMaksim Denisov
...and get it from LocalCAS.
2024-08-07Avoid deep copies of containers in responses.Maksim Denisov
2024-08-07Remove code duplication in Populate method in responses.Maksim Denisov
2024-08-07Remove unused code from Artifact::ObjectInfoMaksim Denisov
Deserialization from json is used in a single test only
2024-08-07Remove unused code from BazelMasgFactoryMaksim Denisov
1. Remove NodeProperties from CreateDirectory; 2. Set digest in CreateFileNode, CreateDirectoryNode.
2024-08-07Pass SymlinksCheckFunc to GitRepo as not_nullMaksim Denisov
+ invoke it only if there are symlinks to check + remove the corresponding runtime check since it is replaced by a compile-time check
2024-08-07Pass to ObjectCAS an optional ExistsFunc using std::optionalMaksim Denisov
...since this is more readable. And adjust the LocalCAS's uplinker creator.
2024-08-07Replace classic C boolean operators with keywordsMaksim Denisov
! => not; && => and, || => or
2024-08-06analyse: extend provides map when switching to action inputKlaus Aehlig
When switching from a target to the artifacts that are the inputs of a particular action, the provides map is also switched to provide additional (besides the inputs) information about the action, in particular the command. Extend this provides map with the remaining information, in particular the working directory.
2024-08-05Expression language: add expression from_subdirKlaus Aehlig
... allowing to select only the keys in a specific subdir, and move the them to top-level.
2024-08-05When using errno, log the actual error messagePaul Cristian Sarbu
For the user it is more useful to see the actual error message, provided by strerror(), than the pure error code.
2024-08-05Add missing cerrno includesPaul Cristian Sarbu
2024-08-05authentication: Properly log failures to open certification filesPaul Cristian Sarbu
2024-08-02just: report completion of analyse earlierKlaus Aehlig
... right after having successfully finished analysing the target. As a side effect, we also get the statistics of the export targets reported on analysis requests. As cached export targets project artifacts to known ones, that information is highly relevant there.
2024-08-02Actions with non-trivial cwd: add empty input tree, if requiredKlaus Aehlig
While our local action execution implicitly creates the specified cwd with the first output file or directory, this behaviour is not mandated by the remote-execution protocol. There, an action definition has to ensure that cwd is a directory implied by the input files. Achieve this, by adding an empty input directory at cwd if this can be done without creating tree conflicts.
2024-08-02generic rule: add support for cwdKlaus Aehlig
2024-08-02rules: make ACTION expression support "cwd"Klaus Aehlig
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-08-01class Action: include field cwdKlaus Aehlig
... for the working directory inside the action directory.
2024-08-01Add a utility function to rewrite path strings relative to a subdirectoryKlaus Aehlig
2024-08-01expression: add kEmptyStringKlaus Aehlig
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-30ApiBundle: Use a creator method instead of constructorPaul Cristian Sarbu
This will allow for ApiBundle to be used together with the TestApi implementation of IExecutionApi in tests. Also rename CreateRemote method to MakeRemote in order to remove any semantical confusion.
2024-07-30ApiBundle: Remove deprecated fields now used via RemoteContextPaul Cristian Sarbu
2024-07-30Use RemoteContext in install_casPaul Cristian Sarbu
2024-07-30Pass RemoteContext to Executor/RebuilderPaul Cristian Sarbu
2024-07-30Pass RemoteContext to GraphTraverserPaul Cristian Sarbu
It is passed as a not_null const pointer, to avoid binding to temporaries, and stored as a const reference to be later passed also to Executor/Rebuilder.
2024-07-30Pass RemoteContext to execution serverPaul Cristian Sarbu
2024-07-30Pass LocalContext and RemoteContext to ServeApiPaul Cristian Sarbu
Also switch to using the fields from RemoteContext instances instead of those from ApiBundle.
2024-07-30Use RemoteContext in serve servicesPaul Cristian Sarbu
Also switch to using the fields from RemoteContext instances instead of those from ApiBundle.
2024-07-30Pass RemoteContext to ApiBundlePaul Cristian Sarbu
The CreateRemote method is also updated to receive all remote-related information as arguments, such that it does not have to rely on the ApiBundle internal fields which will eventually be removed.
2024-07-30target service: Properly set up the RemoteExecutionConfig instance...Paul Cristian Sarbu
...for orchestrated builds. As the dispatch list and execution properties need to be parsed, place them in a proper RemoteExecutionConfig, to be passed to the created ApiBundle instance.