Age | Commit message (Collapse) | Author |
|
... allowing to print the unique artifact built (if any). This
allows convenient inspection of the build result of targets that
define precisely one artifact.
|
|
This is an amendment to the changes in commit 8234079, as the
underlying issue was only partially solved there. While the call to
GitRepo::InitAndOpen is in itself properly guarded, it does not
share a lock with the call to create the path to the Git cache if
it is missing.
Fix this by moving the call to the method ensuring the Git cache
initialization to after acquiring the Git cache root garbage
collector shared lock.
|
|
|
|
Similarly to just-mr, each SourceTree RPC must ensure that the Git
cache folder exists and the Git cache repository is initialized
before using it.
While there, fix missing shared locks on the Git cache root.
|
|
|
|
...instead of adding it preliminarily.
|
|
|
|
...instead of a plain hash. Hash gets computed for different storage types on the fly.
|
|
...since this is a more generic approach.
|
|
|
|
...to let it be stored as an independent instance.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
...and employ it in LocalApi.
|
|
|
|
|
|
|
|
|
|
...that is an abstract representation of roots that must be computed before the start of the main build.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
... given that a proper reporting of the return code if
repo_config.SetGitCAS is contained in main anyway. Therefore, log
the details trying to set the git cas to a level less than that of
the final reporting.
|
|
... as there might be cases where it is expected that setting the
git CAS fails, e.g., if referring to the implict git repository in
the local build root as a fallback CAS.
|
|
This method returns a GitCASPtr allowing the caller to handle
failure gracefully. Therefore, logging should be at most at level
Warning as it is up to the caller to provide the fatal error message.
Moreover, it can be at lower level in cases where failure to open
that git cas is not an unexpected event, e.g., when looking for a
blob in local mirrors first.
|
|
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.
|
|
|
|
|
|
|
|
...and ignore non-requested digests.
|
|
|
|
...and use expected to replace it.
|
|
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.
|