Age | Commit message (Collapse) | Author |
|
In order to stay backwards compatible, the "tree_overlays" entry
in action-graph descriptions is optional.
|
|
The public interface of our graph traverser is typically called
once per program invocation, so there is no benefit in optimizing
across the boundaries of that call. Many calls do happen within the
internal functions of the graph traverser; but for that, the benefit
of being in the same compilation unit also happens if everything
is moved to the same cpp file. Therefore, make the graph traverser
a standard library and in this way, clean up our code basis.
|
|
...in order to avoid copying while uploading.
|
|
|
|
|
|
|
|
And ensure every user obtains HashFunction from corresponding IExecutionApi
|
|
|
|
...since it works with ArtifactBlobs only.
|
|
...with explicit std::unordered_set.
|
|
... allowing to print the unique artifact built (if any). This
allows convenient inspection of the build result of targets that
define precisely one artifact.
|
|
... to avoid unnecessary network fetches.
|
|
|
|
As we write the first message about the actual upload of a blob,
we should use future rather than past tense. Also, again at trace
level, add a message of successful completion, if we succeeded.
|
|
...and private members using lower_case_
|
|
|
|
...proposed by clang-tidy.
Enable bugprone-optional-value-conversion check.
|
|
...to get access to the protocol type.
|
|
|
|
...with ArtifactDigestFactory::HashDataAs
|
|
! => not; && => and, || => or
|
|
Also update the classes documentation accordingly.
|
|
...instead of separate local and remote instances.
For tests, where different implementations of the IExecutionApi
interface are used, ApiBundle instances are created by explicitly
setting the struct fields instead of using ApiBundle::Create.
|
|
This will allow for ApiBundle to be used together with the TestApi
implementation of IExecutionApi in tests.
Also rename CreateRemote method to MakeRemote in order to remove
any semantical confusion.
|
|
|
|
It is passed as a not_null const pointer, to avoid binding to
temporaries, and stored as a const reference to be later passed
also to Executor/Rebuilder.
|
|
The CreateRemote method is also updated to receive all
remote-related information as arguments, such that it does not have
to rely on the ApiBundle internal fields which will eventually be
removed.
|
|
|
|
|
|
|
|
|
|
...and replace it with passed instances created early via a builder
pattern.
Tests are also updated accordingly.
|
|
...and store it as a const ref for subsequent use wherever the apis
are already passed.
|
|
|
|
Use a builder pattern for creation and validation, in a manner that
allows also other authentication methods to be added in the future
besides the current TLS/SSL.
The main Auth instances are built early and then passed by not_null
const pointers, to avoid passing temporaries, replacing the previous
Auth::TLS instances passed by simple nullable const pointers. Where
needed, these passed Auth instances are also stored, by const ref.
Tests also build Auth instances as needed, either with the default
'no certification' or from the test environment arguments.
|
|
|
|
...instead of not_null const ptr.
|
|
...instead of not_null const ptr.
|
|
...instead of not_null const ptr.
|
|
|
|
...to properly fallback to local api if needed.
|
|
|
|
Update logic populating containers to use the new method which
is aware of the maximum transfer limit.
|
|
...instead of BazelBlobContainer to not bring bazel_re::Digest to IExecutionApi.
|
|
|
|
...where the template parameter is the type of a digest.
|
|
Once a RepositoryConfig instance gets populated, it must never be
changed again. Therefore, all functions accepting these instances
should only take them as pointers to const.
|
|
The gsl-lite implementation is slightly more picky in terms of
type conversions and constness resolution in initializers,
therefore small changes were needed.
|
|
This means that on the serve endpoint, where a logger for the
GraphTraverser is explicitly set, the log messages during action
execution is also made available to the client via the CAS-stored
analysis and build log blob.
|
|
|