Age | Commit message (Collapse) | Author |
|
As analysis now can compute roots, i.e., can build artifacts, it
needs to support setting the local launcher, action timeout, and
the build jobs.
The stage and rebuild arguments, which are also needed by the graph
traversal, as well as other build-related arguments, remain not
supported for the analysis subcomamnd, however they remain honored
if set by subcommands that trigger an implicit analysis (e.g.,
build or install).
|
|
|
|
Failure to execute an action can be infrastructure problems, like failure to
reach the server, etc. However, it can also be an action timeout; in the latter
case, we want to know which action it was that did time out.
|
|
|
|
Some actions are allowed to fail, typically tests. By reporting the
output of failed such actions early, the user can already have a
look at those artifacts, typically a test log, while the build is
still going on.
|
|
... to avoid unnecessary network fetches.
|
|
|
|
Extend the api to optionally accept a different API for preferred
fetching. This is already supported when fetching to a file path;
therefore, extend to keep the interface symmetric.
|
|
If fetching via the primary API failed and there is no fallback,
we should fail rather than tacitly continuing with the next object
to fetch.
|
|
...and access internal state via getters.
|
|
...since there are no unique_locks any more.
|
|
...and remove GuardedRepo.
|
|
|
|
...and use it in GitRepo to set custom backends.
|
|
|
|
...and fix a potential memory leak in the try-catch for std::filesystem::absolute.
|
|
|
|
|
|
To avoid unnecessary staging and git imports of computed roots for
build in compatible mode, use the rehashing functionality to allow
us to compute the git tree of that root in memory.
|
|
|
|
When constructing a git tree out of an artifact stage, support
rehashing the artifact digests on the fly, so that artifact stages
not based on GitSHA1 can be supported as well.
|
|
... to allow a more specific signature when passing around
the rehash function.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
There is no such thing as private dependencies of a header-only library
|
|
... and, in this way, avoid git-tree computations with invalid git
identifiers.
|
|
|
|
|
|
... and look up values in cache, if possible.
|
|
Computed roots are given as the artifacts stage of a target. However,
to be usable as a root, we need the git tree identifier of that
root. Therefore, add a library doing this computation, avoiding
file-system operations whenever possible.
|
|
|
|
While there, also clean up the analysis result as soon as it
is no longer needed.
|
|
When the signature changed in df4ac66b272d1e26df42855143dda79fc268b558,
the doc string should have been adapted as well. Do this now.
|
|
... instead of mixing up the counting with the global action count,
that then would exceed the top-level discovered actions.
|
|
For subcomputations add the log to CAS and only report the blob
identifier. Also, indicate at the beginning, that computed roots are
to be computed. While there, simplify code by using the ToString()
method of computed roots.
|
|
|
|
... also to the ToResult method of the result map.
|
|
The way we use our object cas, it is not unsual that a blob asked
for is not present. Therefore, logging this at debug level floods
that level with too many messages irrelevant for debugging. Fix this,
be demoting to trace level.
|
|
Add a basic implementation of computed roots. So far we neither
enforce nor make good use of the fact that the underlying target
of a computed root has to be an export target of a content-fixed
repository; instead, we always install the root to a temporary
directory and pick it up from there. Still, the basic functionality
is there, and it is minimally useful.
|
|
|
|
|
|
|
|
...instead of filling in a map passed from the outside.
|