Age | Commit message (Collapse) | Author |
|
... 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).
|
|
|
|
Able to handle imports from Git repositories and deduplicate the
resulting configuration.
|
|
|
|
... 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.
|
|
...with local and remote build arguments required to support
computed roots.
|
|
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).
|
|
|
|
One of the analysis commands marked as expected to fail fails from
wrongly passing the launcher instead of the stated reasons. As the
behaviour between standalone and separate serve endpoint versions
would become inconsistent after fixing the command line, remove
this check completely. This does not negatively influence the scope
of the test script.
|
|
|
|
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.
|
|
|
|
... even if remote-execution arguments are given. Also verify
that failure is correctly reflected in the exit code.
|
|
... 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.
|
|
Cover two cases:
1. The whole tree is present in the source storage;
2. Only the top-level tree is present in the source storage.
|