summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* tox.ini: Add tox env as a wrapper for running individual templated testsphil/expose-templated-testsPhil Dawson2019-04-121-0/+20
|
* docs: Add generated docs for buildstream.plugintestutilsPhil Dawson2019-04-122-0/+5
|
* Make templated source tests available in buildstream.plugintestutilsPhil Dawson2019-04-1243-43/+60
|
* plugintestutils._utils: Copy subset of tests.testutils.sitePhil Dawson2019-04-122-1/+47
| | | | | | A subset of the functionality provided by this module is not available from buildstream._site but is necessary for the templated source plugin tests.
* plugintestutils: Add copy of testutils.junction.pyPhil Dawson2019-04-126-4/+88
| | | | | Copy tests.testutils.junction into plugintestutils._utils. This is needed for use by the templated source tests.
* testutils: move repo.py into buildstream.plugintestutilsPhil Dawson2019-04-1238-167/+227
| | | | | | | | This needs to be exposed as part of the plugin author facing API so that plugin authors can define custom repo types which will can be passed to the set of tests which iterate over multiple source types. Part of the work towards #944
* Merge branch 'jjardon/bst-plugins-experimental' into 'master'bst-marge-bot2019-04-121-1/+1
|\ | | | | | | | | .gitlab-ci.yml: master (bst2) should use the new bst-plugins-experimental repo instead bst-external See merge request BuildStream/buildstream!1275
| * .gitlab-ci.yml: bst2 should use the new bst-plugins-experimental repo ↵jjardon/bst-plugins-experimentalJavier Jardón2019-04-121-1/+1
|/ | | | instead bst-external
* Merge branch 'juerg/partial-cas' into 'master'bst-marge-bot2019-04-129-54/+240
|\ | | | | | | | | Do not fetch file blobs for build-only dependencies with remote execution See merge request BuildStream/buildstream!1278
| * cascache.py: Simplify handling of Digest objectsJürg Billeter2019-04-121-17/+7
| | | | | | | | | | Avoid unnecessary copies and use CopyFrom() instead of copying fields one by one where copies are necessary.
| * tests/remoteexecution/partial.py: Add test for partial CASJürg Billeter2019-04-122-0/+52
| |
| * _sandboxremote.py: Fetch only needed directoriesJürg Billeter2019-04-121-3/+21
| |
| * element.py: Set sandbox build directoryJürg Billeter2019-04-121-0/+9
| | | | | | | | | | | | Let the sandbox know whether the buildtree will be required. This allows the remote execution sandbox to skip buildtree download when it's not needed.
| * element.py: Set SandboxRemote.output_files_requiredJürg Billeter2019-04-121-1/+4
| | | | | | | | This enables conditional output file fetching with remote execution.
| * sandbox.py: Add _set_build_directory() methodJürg Billeter2019-04-121-0/+16
| | | | | | | | | | This will enable SandboxRemote to download the file blobs of the build directory only when needed.
| * _sandboxremote.py: Make output file fetching conditionalJürg Billeter2019-04-121-7/+23
| | | | | | | | | | Output files need to be downloaded only if they are required in the local cache or if artifact push remotes need them.
| * _artifactcache.py: Add find_missing_blobs() methodJürg Billeter2019-04-121-0/+27
| |
| * cascache.py: Add remote_missing_blobs() methodJürg Billeter2019-04-121-1/+13
| | | | | | | | Extracted from remote_missing_blobs_for_directory().
| * cascache.py: Do not fetch files in _fetch_tree()Jürg Billeter2019-04-121-5/+0
| | | | | | | | Download them separately as they are not always required.
| * _sandboxremote.py: Fetch output file blobs after pull_tree()Jürg Billeter2019-04-121-1/+9
| | | | | | | | | | This allows skipping file download in pull_tree()/_fetch_tree() and is preparation for conditional output file fetching.
| * cascache.py: Make _required_blobs() publicJürg Billeter2019-04-121-27/+32
| |
| * element.py: Do not pull file contents if not requiredJürg Billeter2019-04-121-0/+5
| |
| * _stream.py: Suport partial CAS for build sessions with remote executionJürg Billeter2019-04-121-0/+7
| |
| * _artifact.py: Use Element._artifact_files_required() in cached()Jürg Billeter2019-04-121-1/+1
| | | | | | | | | | Ensure required artifact files are available for elements that need them even if the context does not require artifact files for all elements.
| * element.py: Add _set_artifact_files_required() methodJürg Billeter2019-04-121-0/+24
| | | | | | | | | | This will be used to allow build sessions with a partial local CAS when using remote execution.
| * element.py: Drop remote execution fallback for incompatible pluginsJürg Billeter2019-04-121-7/+6
|/ | | | | | Element plugins will be required to support virtual directories before the next major version. Drop support for fallback from remote to local execution as this blocks partial CAS.
* Merge branch 'aevri/platform_uname' into 'master'bst-marge-bot2019-04-126-50/+72
|\ | | | | | | | | use uname in a win32-compatible way See merge request BuildStream/buildstream!1262
| * Use uname field names instead of indicesaevri/platform_unameAngelos Evripiotis2019-04-112-3/+3
| | | | | | | | | | | | platform.uname() returns a namedtuple of "system, node, release, version, machine, and processor". Use these slightly clearer names instead of the magic numbers.
| * platform.canonicalize_arch: be case-insensitiveAngelos Evripiotis2019-04-111-1/+3
| | | | | | | | | | | | On the win32 platform, uname strings can come through in ALLCAPS. Be case-insensitive by lowercasing the arch before lookup.
| * Use platform.uname instead of os.uname for win32Angelos Evripiotis2019-04-116-24/+23
| | | | | | | | | | | | | | | | | | The 'platform' module in the standard library provides a more portable version of uname(), which also works on Windows. In CPython, the platform version is implemented in terms of the os version: https://github.com/python/cpython/blob/60875db2f67815d7d181c552bfac59e8c97619e3/Lib/platform.py#L747
| * tests: extract testutils.override_os_unameAngelos Evripiotis2019-04-114-45/+66
|/ | | | | | | | | | | Combine the very similar override_uname_arch() and override_uname_os() in a new helper function, to reduce duplication. Also use a 'try/finally' block to ensure that the original os.uname() is restored. This will make it simpler to adopt platform.uname() instead in later work.
* Merge branch 'chandan/fix-bst-pull-docs' into 'master'bst-marge-bot2019-04-114-23/+23
|\ | | | | | | | | test: Fix remaining references to bst push/pull See merge request BuildStream/buildstream!1285
| * tests: Fix all remaining references to bst pushchandan/fix-bst-pull-docsChandan Singh2019-04-104-12/+12
| | | | | | | | | | As the `bst push` is now called `bst artifact push`, update the remaining comments in testsuite that still refer to it as `bst push`.
| * tests: Fix all remaining references to bst pullChandan Singh2019-04-103-11/+11
|/ | | | | As the `bst pull` is now called `bst artifact pull`, update the remaining comments in testsuite that still refer to it as `bst pull`.
* Merge branch 'chandan/fix-default-target-junctions' into 'master'bst-marge-bot2019-04-101-1/+5
|\ | | | | | | | | | | | | _project.py: Do not find default targets in .bst directory Closes #992 See merge request BuildStream/buildstream!1284
| * _project.py: Do not find default targets in .bst directorychandan/fix-default-target-junctionsChandan Singh2019-04-101-1/+5
|/ | | | | | | | | | In cases where element path is set to `.` and the project has some junctions, we have to be careful when trying to find the default targets. We can't simply find all files ending with `.bst`. But, we first need to ensure that we do not recurse down the `.bst` directory which is used to store BuildStream internals. Fixes #992.
* Merge branch 'aevri/rm_unused_member' into 'master'bst-marge-bot2019-04-101-1/+0
|\ | | | | | | | | cleanupjob: remove unused '_artifacts' member See merge request BuildStream/buildstream!1283
| * cleanupjob: remove unused '_artifacts' memberaevri/rm_unused_memberAngelos Evripiotis2019-04-101-1/+0
|/
* Merge branch 'aevri/pass_funcs_not_generators' into 'master'bst-marge-bot2019-04-093-3/+7
|\ | | | | | | | | {artifact,source,cas}cache: fix one-shot callbacks See merge request BuildStream/buildstream!1273
| * {artifact,source,cas}cache: fix one-shot callbacksaevri/pass_funcs_not_generatorsAngelos Evripiotis2019-04-093-3/+7
|/ | | | | | | | | | | | Remove the unintended side-effect of only being able to iterate the ref_callbacks results once. This would mean that subsequent calls to clean() were not honoring the required_refs correctly. Update CasQuota.clean() to call the ref callbacks and iterate over their results. When registering ref callbacks; pass the methods, and not the generators that they return.
* Merge branch 'raoul/965-AaaP-service' into 'master'bst-marge-bot2019-04-055-1/+734
|\ | | | | | | | | | | | | Artifact as a Proto: protos and service Closes #965 See merge request BuildStream/buildstream!1259
| * artifactservice.py: tests for the artifact serviceraoul/965-AaaP-serviceRaoul Hidalgo Charman2019-04-041-0/+109
| | | | | | | | Part of #965
| * casserver.py: Add artifact serviceRaoul Hidalgo Charman2019-04-041-1/+82
| | | | | | | | Part of #965
| * Add Artifact protoRaoul Hidalgo Charman2019-04-043-0/+543
|/ | | | Part of #965
* Merge branch 'danielsilverstone-ct/reenable-key-in-node' into 'master'bst-marge-bot2019-04-0418-69/+36
|\ | | | | | | | | Re-enable `key in somenode` construct after YAML new world order See merge request BuildStream/buildstream!1280
| * _yaml.py: Remove node_containsDaniel Silverstone2019-04-0414-42/+28
| | | | | | | | | | | | | | Now that we permit `key in somenode` remove the no longer needed function to check if a node contains a key. Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
| * Plugin: Remove node_has_member()Daniel Silverstone2019-04-044-25/+4
| | | | | | | | | | | | | | Now that we permit `key in somenode` again, remove the unnecessary extra API of Plugin.node_has_member() Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
| * _yaml.py: Node.__contains__: Support this nowDaniel Silverstone2019-04-041-2/+4
|/ | | | | | Now that we've had the fallout settle, support `key in somenode` again. Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
* Merge branch 'danielsilverstone-ct/more-yaml-cleanups' into 'master'bst-marge-bot2019-04-043-6/+23
|\ | | | | | | | | _yaml.py: Add node_keys() See merge request BuildStream/buildstream!1274
| * _yaml.py: Add node_keys()danielsilverstone-ct/more-yaml-cleanupsDaniel Silverstone2019-04-033-6/+23
|/ | | | | | | | There were a number of places where `node_items()` was called and the values discarded. Since values can be expensive to compute, this replaces any such places with a `node_keys()` function call instead Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>