Age | Commit message (Collapse) | Author |
|
..., i.e., the requirement that the positional arguments form a
syntactically valid target name. An explicit error message (created
by the target-name parsing) is preferrable over tacitly dropping all
but the last up to two arguments (which is the meaning of CLI11's
expected(2)).
While there, drop duplicate full stop in error message.
|
|
This subcommand starts a single node remote execution service honoring
the just native remote protocol.
If the flag --compatible is provided, the execution service will honor
the original remote build execution protocol.
New command line args supported by this subcommand:
-p,--port INT: Execution service will listen to this port. If unset,
the service will listen to the first available one.
--info-file TEXT: Write the used port, interface, and pid to this file
in JSON format. If the file exists, it will be overwritten.
-i,--interface TEXT: Interface to use. If unset, the loopback device
is used.
--pid-file TEXT Write pid to this file in plain txt. If the file
exists, it will be overwritten.
--tls-server-cert TEXT: Path to the TLS server certificate.
--tls-server-key TEXT: Path to the TLS server key.
Co-authored by: Klaus Aehlig <klaus.aehlig@huawei.com>
|
|
|
|
|
|
|
|
|
|
... dumping only the configured targets that are export targets.
Those targets are of particular interest as those are the targets,
as they are the high-level caching points and also often serve
as interface between projects.
|
|
|
|
|
|
Add an option --dump-vars showing the variables of the configuration
used (including the use of them being unset). This information can
be used, e.g., to export a given target in a maximally flexible way.
|
|
|
|
... if none is specified on command line or in the config.
|
|
Signed-off-by: Goetz Brasche <goetz.brasche@huawei.com>
|
|
The version subcommand now has no expected command line options, as expected.
Also the version subcommand was missing from the man page synopsis.
|
|
|
|
|
|
... to be able to report the respective graph for later analysis
by other tools.
|
|
Like file or tree references, globs are restricted to the current
module; in fact, by the way we evaluate them, even to the top-level
directory of that module: a glob is a target having as artifacts and
runfiles those entries of the top-level directory of the specified
module that match the given pattern.
|
|
... also when determining default module or target.
|
|
We have to include explicit tree references into our target-result
map, as these targets can provide a tree definition, if the root
is not a git root or compatible mode is used. Nevertheless, from a
user's persepective, trees are just source references, like files.
Therefore, do not include them, when dumping the map of analyzed
targets. In this way, we also avoid the ambiguity in the dump between
an explicit tree reference and a defined target with the same name.
|
|
Analysing a target is a pretty self-contained task. So move it
into a library of its own, to keep main.cpp more managable.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Extend the --request-action-input option to also provide command line,
environment, etc, of the requested action. As this option is mainly
for debugging, having that information available via the analyse
subcommand is useful; for build/install that change does not make
a difference anyway.
|
|
The remote execution endpoint shards the target-level cache; still,
for analysis, we want to specify a particular target-level cache,
e.g., to analyse the inputs of a particular action that failed
remotely. Note that the action identifier depends on the target-level
cache in question, due to the extensional projection implicit in
target-level caching.
|
|
... as the --request-action-input option provides a clean way of
restoring the inputs to a specific action, without the need of
interacting with the internal directory structure of the tool. In
particular, the new option also works for remote builds.
|
|
Add an option to change the requested result to be (as artifacts)
the input stage of a specified action. In this way, the inputs to
individual actions can conveniently be inspected, e.g., for local
debugging of why an action failed.
|
|
|
|
|
|
To also allow identifying snapshot versions in a meaningful way,
we support embedding SOURCE_DATE_EPOCH which ought to be set to
the commit time of the commit used.
|
|
|
|
commit fd58a5eb429d4a9db51f73c06137f1a4ebe41c08 introduced a bug. If
the main workspace root is a git repo, it will be overwritten by a
std::optional<std::filesystem::path> storing std::nullopt. This patch
fixes this wrong behaviour.
|
|
|
|
|
|
|
|
... and cache endpoint address for rebuilding.
|
|
For some file roots, in particular git trees, we can give a complete
selfcontained description of the content without accessing any
external resources. For those, add a method to return such a complete
description that will be used to compute the keys of content-defined
repositories.
|
|
... and ensure that the default logging is set up before.
|
|
|
|
|
|
|
|
the command line --workspace-root now overwrites what is eventually
read from the multi-repository configuration file for the main
repository
|
|
|
|
|