summaryrefslogtreecommitdiff
path: root/src/buildtool/main/main.cpp
AgeCommit message (Collapse)Author
2022-07-05Implement staging of action inputsKlaus Aehlig
Add an option to change the requested result to be (as artifacts) the input stage of a specified action. In this way, the inputs to individual actions can conveniently be inspected, e.g., for local debugging of why an action failed.
2022-07-05Fix wrong output pipe for version info in mainPaul Cristian Sarbu
2022-06-28Support more verbose error reportingKlaus Aehlig
2022-06-24Add a version subcommandKlaus Aehlig
To also allow identifying snapshot versions in a meaningful way, we support embedding SOURCE_DATE_EPOCH which ought to be set to the commit time of the commit used.
2022-06-20Crypto: Add and use set of globally used hash functionsOliver Reiche
2022-06-14fix handling of workspace root for the main repositoryAlberto Sartori
commit fd58a5eb429d4a9db51f73c06137f1a4ebe41c08 introduced a bug. If the main workspace root is a git repo, it will be overwritten by a std::optional<std::filesystem::path> storing std::nullopt. This patch fixes this wrong behaviour.
2022-06-13Main: Print statistics for export targetsOliver Reiche
2022-06-13Main: Collect cache artifacts and Write target cache entriesOliver Reiche
2022-06-13GraphTraverser: Add support for extra artifactsOliver Reiche
2022-06-13RemoteExecutionConfig: Keep global platform propertiesOliver Reiche
... and cache endpoint address for rebuilding.
2022-06-13FileRoot: support content descriptionKlaus Aehlig
For some file roots, in particular git trees, we can give a complete selfcontained description of the content without accessing any external resources. For those, add a method to return such a complete description that will be used to compute the keys of content-defined repositories.
2022-06-13CLI: Catch and report non-CLI11 related errorsOliver Reiche
... and ensure that the default logging is set up before.
2022-06-09improve error messageAlberto Sartori
2022-06-09reduce code duplicationAlberto Sartori
2022-06-09pass by const ref big objectsAlberto Sartori
2022-06-09fix order of evaluations for the workspace root of the main repositoryAlberto Sartori
the command line --workspace-root now overwrites what is eventually read from the multi-repository configuration file for the main repository
2022-06-09remove misleading commentAlberto Sartori
2022-06-02CLI: New option -D/--defines for in-line configurationOliver Reiche
2022-05-04just: add --compatible also to "just analyse"Klaus Aehlig
One of the uses of "just analyse" is to obtain the action graph which also contains identifiers depending on the way artifacts are hashed, e.g., blobs or known artifacts. Therefore, make just analyse support compatible mode as well.
2022-04-27use kebab-case for all cmd line argsAlberto Sartori
2022-04-26doc strings: support documentation of the resultKlaus Aehlig
A complete documentation of a rule should not only include how to use it (i.e., which fields are present and what is their meaning) but also what the result is. This is particularly true, as the result is structured and can contain some complex logic or conventions in the provided information.
2022-04-25result description: always show full informationKlaus Aehlig
So far, `just describe` reported only the list of keys for runfiles and artifacts while reporting full information for the provided data, including the artifacts contained therein. Change this to always reporting the full information, as for runfiles and artifacts the detailed information is valuable as well.
2022-04-21add compatibility with original remote build protocolAlberto Sartori
2022-04-07main: warn if result contains failed artifactsKlaus Aehlig
2022-04-07implement new built-in target TREEAlberto Sartori
2022-04-04Add a basic progress reporterKlaus Aehlig
Reporting, with exponentially backing off intervals, the number of cache hits found so far, the number of actions that have ben run, and the number of actions currently under consideration.
2022-03-29refactor EntityNameAlberto Sartori
EntityName now clearly expresses its double identity: - NamedTarget - AnonymousTarget The usage of std::variant<NamedTarget,AnonymousTarget> guarantees that EntityName, internally, is not a mix of the two - like could happen before this patch. NamedTarget features an enum ReferenceType to express the type of the target, namely, "normal target" or an "explicit file reference". Thanks to this refactoring, the introduction of new targets type should be easier, since the design is more modular. NamedTarget
2022-03-23Apply changes suggested by clang-tidy 11Oliver Reiche
2022-03-23Apply changes suggested by clang-format 11Oliver Reiche
2022-03-14just describe: Also describe config fieldsOliver Reiche
2022-03-02tool: at the earliest possible moment confirm the targetKlaus Aehlig
In this way the user gets an early feedback about the target that was requested and can check if that was the target they had in mind, especially in the case of fall back to the alphabetically first one (according to native byte order). As a nice side effect, we have a timestap on when the analysis started.
2022-03-01Pass actions and trees in analysis result as shared pointerKlaus Aehlig
... to avoid unnecessary copying and moving of larger objects.
2022-03-01main: add a log message after finishing analysisKlaus Aehlig
In this way, the user has a slightly better insight into the stage the tool currently works on. While there, also move the first report of taintedness to the earliest possible moment.
2022-02-22Initial self-hosting commitKlaus Aehlig
This is the initial version of our tool that is able to build itself. In can be bootstrapped by ./bin/bootstrap.py Co-authored-by: Oliver Reiche <oliver.reiche@huawei.com> Co-authored-by: Victor Moreno <victor.moreno1@huawei.com>