Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Unify logic from evaluator of precomputed roots.
|
|
|
|
|
|
|
|
|
|
... allowing to print the unique artifact built (if any). This
allows convenient inspection of the build result of targets that
define precisely one artifact.
|
|
|
|
|
|
|
|
While building a computed root generally follows the way the main
build is carried out, certain parameters need to be cleared. In
particular, the computed root is not part of the rebuild and no
build output should be dumped anywhere.
|
|
When materializing a computed root fails, the error is reported
as a reference (in form of a blob identifier) to the log. This
indirection is necessary as many roots are, in general materialized
simultaneously. When building remotely, also upload the build log
to remote execution; in this way, it is available in the same way
as for serve-build failures (which are the other delegated builds).
One particular use case is if the failure happens on a CI build;
then the upload ensures the actual log is still available for the
observer of the CI (provided they have access to the remote execution
used by the CI).
|
|
... as the base repository of a computed root might be absent.
|
|
... however, also build the runfiles, as they are needed to write the
target-level cache for the underlying export target.
|
|
|
|
|
|
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.
|
|
|
|
... 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.
|
|
... 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.
|
|
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.
|
|
|