Age | Commit message (Collapse) | Author |
|
|
|
Add an end-to-end test verifying that we report enough useful
information in case of an action failing.
|
|
... i.e., the values for "mirror" and "inherit env"
|
|
|
|
When fetching git repositories, just-mr routinely shells out to
git. In this case, allow the user to specify via "inherit env",
which environment variables from the host environment should be
made available in this action. Typical variables to inherit are
ones providing credentials, like SSH_AUTH_SOCK. As the repository
description specifies the commit that will be taken, and hence the
resulting tree, correctness is not affected by the environement
leaking in here.
|
|
|
|
|
|
... in order to not rely on the default launcher to pull it in.
|
|
... to not rely on env implicitly pulling in echo to PATH.
|
|
... in order to not assume echo to be on the standard search
path pulled in by env.
|
|
For a user `just install-cas` will show an entry without revealing
where it found it---as it is content-addressable, it does not matter.
Therefore, verify that accessing paths of a tree object also works
regardless of where the tree is stored.
|
|
... instead of hard-coding it in the example graphs. In this way,
we can honor a provided PATH.
|
|
|
|
... to make tests pass also on systems where /bin/sh does not,
by default, pull in a path to "the standard tools".
|
|
... and only let test do the check on the final resulting boolean,
where the string representation is canonical. In this way, we avoid
having to rely on the string representation of numbers, where, e.g.,
1 and 1.0 are equally valid representations of the same number.
|
|
... in the local launcher for the execution end point. In this way,
the tests also work on systems where sh does not pull in enough
paths to have all the "usual" tools available.
To also get a correct path on systems relying on sh pulling in
enough paths, take what sh, launched with the default launcher,
would believe the path is.
|
|
... for test actions, by setting an appropriate local launcher. In
this way, the tests can also be run on systems where sh does not
pull in enough paths to have all the "usual" tools available.
|
|
|
|
The requests to retrieve the tree of a commit, archive, or distdir
also set up those trees in a way that the serve endpoint can later
build against them, besides allowing just-mr to set up roots
locally. Therefore, if the witnessing entity (Git commit, content
blob, or distdir, respectively) is known to the serve endpoint,
then failing to set up the root tree there should result in a
failure also of the just-mr setup on the client side.
|
|
For archives and Git repositories we should ensure that not finding
the witnessing entity (archive content blob or Git commit,
respectively) results in a distinct status in the response to a
request that sets up roots on the serve endpoint. This will allow
just-mr to better handle its interaction with the serve endpoint.
|
|
A change made to this test was wrongly setting the same path both
as build root for the serve instance and for the just-mr instances
being tested, resulting in the build root of the serve instance
being inadvertently removed during the test. This commit fixes the
issue by giving the serve endpoint its own build root path.
|
|
|
|
|
|
|
|
... regardless of the names chosen during packaging.
|
|
...in accordance to our coding style.
|
|
|
|
|
|
Add a test that verifies that garbage collection does not violate
the invariants required by the extensional project implicit in
target-level caching.
|
|
... that are eligible for caching. In this way, we can accurately keep
track of the dependencies between target-level cache entries. Note
that it is enough to track the export targets eligible for caching,
as no target depending on an ineligible export target can be eligible.
|
|
Certain end-to-end tests require custom services. While normally
they come up in quickly (less than 2 seconds), on heavily overloaded
machines it might take longer. So increase the amount of time
these tests are willing to wait for the binary to start up to avoid
flakyness in our CI runs.
|
|
|
|
|
|
In order for the serve endpoint to correctly dispatch a build to
the correct remote-execution endpoint, the platform properties and
dispatch list for a build need to be passed explicitly to the
executor (via the graph traverser instance) instead of always being
taken from the RemoteExecutionConfig struct.
This commit implements these changes, including updating existing
tests accordingly.
|
|
|
|
...instead of the vector containing the digests of the uploaded
blobs. The returned vector was never inspected by the callers, except
for its size.
The tests have been accordingly amended.
|
|
During the analysis of export targets, if there is a local target
cache miss, we should also interrogate the serve endpoint
(if given) for the target cache value before proceeding with the
analysis.
For this test we have extended the "with_serve" runner to expose
also the remote-execution build root to the test env.
|
|
|
|
This way we ensure each repository can be set up on its own and
nothing gets cached from other repositories, as opposed to the
parallel run where some caching is expected to occur.
|
|
|
|
|
|
|
|
When just-mr acts as a launcher, for most subcommand options the
"just args" entry in the rc files provides a convenient way to set
them. However, some options take a file as argument; for those it can
be desirable to set them without assuming a fixed file-system layout
and instead refer to logical roots, in particular the work space.
for the ones that refer to files, it is often desirable to have a potential
reference to the work space. Add this functionality.
|
|
|
|
|
|
|
|
...options from the generated help messages, as these are not used
for the install-cas subcommand.
This also updates the man page accordingly, where the dispatch file
was marked as supported, as well as update any test affected by
these changes.
|
|
|
|
With the introduction of 'just serve', export targets can now be
built also independently from one another based on their
corresponding minimal repository configuration, as stored in the
target cache key.
In this context, this commit changes the RepositoryConfig usage
from one global (static) instance to pointers passed as necessary
throughout the code.
|
|
|