| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
Similar to the pull methods, this implements a yield_directory_digests methods
that iterates over blobs in the local CAS, with the upload_blob sending blobs
to a remote and batching them where appropriate.
Part of #802
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Seperates the pull logic into a remote/local API, so that artifact cache
iterates over blob digests checks whether it has them, and then requests them
if not. The request command allows batching of blobs where appropriate.
Tests have been updated to ensure the correct tmpdir is set up in process
wrappers, else invalid cross link errors happen in the CI. Additional asserts
have been added to check that the temporary directories are cleared by the end
of a pull.
Part of #802
|
|
|
|
|
|
|
|
|
|
|
| |
As CASRemote is used in other places such as SandboxRemote it makes sense for
there to be a tmpdir it uses. This dir is passed to CASRemote when initialized.
This is currently in the artifactdir, but should be moved when artifactdir and
builddir options are deprecated in favour of one top level directory containing
the two.
Part of #802
|
|
|
|
|
|
|
|
|
|
|
|
| |
List of methods moved
* Initialization check: made it a class method that is run in a subprocess, for
when checking in the main buildstream process.
* fetch_blobs
* send_blobs
* verify_digest_on_remote
* push_method
Part of #802
|
|
|
|
| |
Part of #802
|
|
|
|
|
|
|
|
|
| |
Other components will start to reply on cas modules, and not the artifact cache
modules so it should be organized to reflect this.
All relevant imports have been changed.
Part #802
|
|\
| |
| |
| |
| | |
Make build plan element list stable
See merge request BuildStream/buildstream!1058
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
For each sample project and expected result order, this test ensures that:
* bst show --deps plan: Always shows the expected build order.
* bst source fetch: Always executes in the expected build order.
* bst build: Always builds in the expected order (disabled).
The build part of the test is currently disabled as the scheduler
seems to be messing with the order even in a `--builders 1` scenario.
|
| |
| |
| |
| |
| | |
Added a function to report the list of elements which appeared in
a given queue in the order of their first appearance.
|
|/
|
|
|
|
|
|
|
|
|
| |
The algorithm adds elements to a dictionary and then sorts the dictionary
by the discovered depths while recursing - using an OrderedDict is enough
to ensure a stable order.
This fixes `bst show --deps plan ...` reporting different results on
each invocation.
This fixes an aspect of #824
|
|\
| |
| |
| |
| | |
contributing: fix 'oprtation' and some other typos
See merge request BuildStream/buildstream!1055
|
|/ |
|
|\
| |
| |
| |
| | |
Accept architecture aliases
See merge request BuildStream/buildstream!1034
|
| | |
|
| |
| |
| |
| |
| | |
Accept common architecture aliases for the sandbox config for
consistency with arch options.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Accept common architecture aliases for arch options instead of only
accepting the canonicalized, OS-independent architecture name. This
restores compatibility with existing projects and may simplify option
handling for projects that only target a single OS (and thus, do not
need OS-independent architecture names).
|
|/ |
|
|\
| |
| |
| |
| | |
.coveragerc: Omit some things which are irrelevant to cover.
See merge request BuildStream/buildstream!1052
|
|/
|
|
|
|
|
| |
* Omit versioneer's _version.py
* Omit our __main__.py which is used only internally for generating
documentation
|
|\
| |
| |
| |
| |
| |
| | |
Allow using detox, and fix/refactor collection of coverage reports
Closes #844
See merge request BuildStream/buildstream!1051
|
| |
| |
| |
| |
| | |
Also point out that it is possible to run test environments in
parallel using the `detox` tool.
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch namespaces the test temp directory and the output
coverage report file with the name of the environment under test,
such that separately run tests do not access the same files.
When running tests without tox, directly through setup.py,
then the tmp directory will still be `./tmp`.
* .gitignore: Added new .coverage-reports/ directory
* .gitlab-ci.yml: Rely on tox to combine and report coverage, only
tell tox about the COVERAGE_PREFIX so that results can be namespaced
by CI job name.
This change also publishes the sources and final combined `.coverage`
file in an output gitlab artifact for inspection, and lists some missing
dependencies to the `coverage` job.
* tox.ini: Add comments and refactor main [testenv] section so that
other environments dont inherit too much unrelated cruft.
Generate the coverate reports in the respective {envtmpdir} so that
all per-process coverage files are prefixed with a full path, ensuring
that concurrent runs don't mix reports and addressing concerns
raised in #844.
Also implemented new `tox -e coverage` environment to combine
any found coverage and print a report.
* .coveragerc: Omit .tox/ directory from coverage stats
Fixes issue #844
|
|\
| |
| |
| |
| | |
Rename 'instance_name' option to 'instance-name'
See merge request BuildStream/buildstream!1048
|
|/
|
|
| |
It was 'instance-name' in the documentation.
|
|\
| |
| |
| |
| |
| |
| | |
buildstream/plugins/elements/script.py: Mark script as BST_VIRTUAL_DIRECTORY
Closes #850
See merge request BuildStream/buildstream!1047
|
|/
|
|
|
|
|
| |
ScriptElement does not use Sandbox.get_directory. It works using it
with remote execution.
Fixes #850
|
|\
| |
| |
| |
| |
| |
| | |
Remote execution configuration: HTTPS and user configuration
Closes #780 and #631
See merge request BuildStream/buildstream!1030
|
| |
| |
| |
| | |
Fixes #780.
|
| |
| |
| |
| | |
Fixes #631.
|
|/ |
|
|\
| |
| |
| |
| | |
sandbox/sandbox.py: Use assertions for programming errors instead of BstErrors.
See merge request BuildStream/buildstream!1046
|
|/
|
|
|
| |
When code is faulty, in a plugin or in the core, we should
get a stack trace and a BUG message.
|
|\
| |
| |
| |
| | |
element.py: remove documentation reference to source bundle command
See merge request BuildStream/buildstream!1041
|
|/
|
|
| |
This command has been replacved by the bst source checkout command
|
|\
| |
| |
| |
| | |
sandbox/sandbox.py: Fix regression of command logging
See merge request BuildStream/buildstream!1044
|
|/
|
|
|
|
|
|
|
|
| |
Since we added batch commands, the batch commands print the
text of the commands directly in the message text, but this is wrong.
The detail string is the appropriate place for text of unknown lengths
(the user can actually configure how many max lines of commands they
want to see in their log), the message text itself should be controlled
and brief enough to avoid text wrapping.
|
|\
| |
| |
| |
| |
| |
| | |
Only queue one cache size job
Closes #753
See merge request BuildStream/buildstream!1040
|
| |
| |
| |
| | |
This is redundant now that we report it through the JobStatus.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This changes the deepest callback from when a Job completes to
propagate a JobStatus value instead of a simple boolean, and updates
all of the effected code paths which used to receive a boolean
to now handle the JobStatus values.
This further improves the situation for issue #753, as now we avoid
queueing cache size jobs for pull jobs which are skipped.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When queuing the special cache management related cleanup and
cache size jobs, we now treat these jobs as special and do the
following:
* Avoid queueing a cleanup/cache_size job if one is already queued
We just drop redundantly queued jobs here.
* Ensure that jobs of this type only run one at a time
This could have been done with the Resources mechanics,
however as these special jobs have the same properties and
are basically owned by the Scheduler, it seemed more straight
forward to handle the behaviors of these special jobs together.
This fixes issue #753
|
|/
|
|
|
|
|
|
| |
This is not used anywhere outside of the Scheduler, currently
only the Scheduler itself is allowed to queue a job at this level.
If the highlevel business logic for automatic queueing of auxiliary
jobs moves to another location, we can make this public again.
|
|\
| |
| |
| |
| | |
Fix stack traces discovered with ^C forceful termination.
See merge request BuildStream/buildstream!1043
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* utils.py:_kill_process_tree(): Ignore NoSuchProcess errors
These are caused because we issue SIGTERM, and if the process
has not exited after a timeout, we kill it.
* _scheduler/jobs/job.py: Stop handling NoSuchProcess errors here
redundantly, they are already ignored.
It seems that we were ignoring it after sleeping when terminating
tasks from the scheduler... but we were not ignoring it when performing
the same pattern in the `Plugin.call()` -> `utils._call()` path, so
we were still getting these exceptions at termination time from host
tool processes launched by source plugins.
|
|\
| |
| |
| |
| | |
_frontend/app.py: Use buildtree for interactive shell on build failure
See merge request BuildStream/buildstream!1039
|
|/
|
|
| |
Fixes: e29aea36 ("Basic options for shell --build to use buildtrees")
|
|\
| |
| |
| |
| | |
.gitlab-ci.yml: Remove prepare stage
See merge request BuildStream/buildstream!1037
|
|/
|
|
|
|
|
|
|
|
| |
As we now run tests using `tox`, we don't need to worry about manually
packing and unpacking BuildStream. So, we can remove the preapre stage
entirely.
Update `coverage` and nightly jobs to appropriately cope with this
change. Both these jobs now install all runtime dependencies from
requirements files.
|
|\
| |
| |
| |
| | |
Add Makefile to update requirements files
See merge request BuildStream/buildstream!1035
|
| |
| |
| |
| |
| |
| |
| |
| | |
Split the "The MANIFEST.in and setup.py" section in two:
"Managing data files" and "Updating BuildStream's Python dependencies".
Briefly explain the layout of `requirements` directory and add
instructions to use the Makefile added in the last commit.
|
| | |
|