summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* WIP: Add various event hooksevent-hooks188-trigger-external-commands-on-certain-eventsTristan Maat2017-12-061-0/+21
|
* Add hook cleaning step after buildstream finishesTristan Maat2017-12-062-22/+111
|
* _context.py: Add hook configurationTristan Maat2017-12-062-0/+27
|
* _hooks.py: Implement event hooksTristan Maat2017-12-061-0/+101
|
* plugin.py: Add log() methodSam Thursfield2017-11-291-0/+12
| | | | This is a helper to log messages into the plugin's log file.
* Fix untar of symlinks. Only hardlinks are relative to top of archive and ↵Valentin David2017-11-291-3/+1
| | | | should be normalized.
* bst-here: Mitigate permission issuesbst-here-permissionsTristan Maat2017-11-291-2/+10
|
* .gitlab-ci.yml: Use source distribution tarballs in all testsTristan Van Berkom2017-11-281-13/+74
| | | | | | | | | | | | This commit adds an initial stage to the pipeline to build a distribution tarball and generate some helper scripts for later CI to use to unpack it and install it. Then, it makes sure that all pytest and integration test runs work from the dist tarball instead of directly from the git repo, also the docs are built from the dist tarball. This ensures that everything continues to work with a dist tarball at all times.
* Remove all deleted paths from manifest after integration commands inValentin David2017-11-271-1/+3
| | | | | | | | | | compose plugin including paths still reachable through following of symbolic links. Keeping reachable paths through following of symbolic links in manifest. Can lead to ENOENT error when copying the file if target directory of a symbolic link is not yet created. The file is anyway copied since the real path of the file is also in the manifest.
* .gitlab-ci.yml: Use specific version of buildstream-fedora Docker imageSam Thursfield2017-11-271-1/+1
| | | | | | | | | | | | | | | | | | | | The image is rebuilt nightly which means it could change under our feet and cause confusing breakages. The reason for these nightly rebuilds is so that the `bst-here` script offers a reasonably fresh version of BuildStream to users. But it also means that dependencies could change in broken ways. You can see the list of tags here, ordered by newness: https://hub.docker.com/r/buildstream/buildstream-fedora/tags/ The number in one of these tag names is the "version" of the image (which is really the number of commits in the buildstream-docker-images repo), while the hex string identifies the commit of BuildStream that the image contains. When changing the Docker image (to add new dependencies, or whatever) you will need to wait until the new tag is pushed, then modify .gitlab-ci.yml so that it pulls the new tag.
* Replace call to legacy urllib.request.urlretrieve by urllib.request.urlopen ↵Valentin David2017-11-251-8/+12
| | | | and add accept header to avoid 406 error on some http servers (e.g alioth.debian.org).
* setup.py: Pinning coverage at 4.4.0 instead of 4.2Tristan Van Berkom2017-11-251-1/+1
| | | | | | Our problem is with 4.4.2; and 4.2 lacks some features and fails to collect all of the coverage from sub processes, causing our reports to drop by 10%.
* Only initialize remote artifact cache connections if neededSam Thursfield2017-11-234-15/+26
| | | | | | | | | | | | | | | | This fixes a regression from the canonical-pull-urls branch that was just merged. The `OSTreeCache.__init__()` function was connecting to the cache, which is bad because execution would randomly freeze for several seconds when the connection was slow. We now only initialize remote connections where needed; this was already introduced in 5c2ef6d076921bc0121e61efaa7a719c34ea1912 but had regressed. I renamed the keyword arg from `fetch_remote_refs` to `use_remote_cache` because it needs to be set for any interaction with the remote cache, doesn't matter if they are fetches or pushes. The initialization stage is also moved later so that we print a message telling the user what we are up to before trying the network access.
* _artifactcache.py: Fixed stack trace regression in pushing of artifacts.Tristan Van Berkom2017-11-241-2/+2
|
* Replace 'push-url' and 'pull-url' options with just 'url'sam/canonical-push-urlsSam Thursfield2017-11-2211-123/+73
| | | | | | | | This is possible now that the SSH protocol can redirect to the appropriate pull URL. Note that this commit makes no attempt at backwards compatibility. Everthing will break!
* Remove the push-port config optionSam Thursfield2017-11-229-40/+16
| | | | | | | | | | | | Ports can and should be specified by using proper ssh:// URL forms, e.g: ssh://artifacts@example.com:22200/artifacts The alternate form of artifacts@example.com:artifacts isn't a valid URL, and doesn't let you specify a different port. People are used to this form due to Git continuing to use it but we should encourage people to use proper URLs.
* Artifact push URLs must redirect to the corresponding pull URLSam Thursfield2017-11-223-16/+58
| | | | | | | | | | | | | | | | | This change is part of issue #112 ("Artifact configuration is confusing and fragile, need canonical push/pull urls.") It updates the bst-artifact-receive program to send a pull URL to clients who access it over SSH. This requires extra configuration in the artifact cache server, so that it knows the correct pull URL. Versions of BuildStream which contain this commit will not be able to communicate over SSH with artifact caches that have not been updated to the same version. Currently this is just used to double-check user configuration, but we can now simplify the user facing configuration for artifact caches completely.
* Check connectivity to remote cache on `bst push`Sam Thursfield2017-11-221-0/+2
|
* setup.py: Add pytest-xdist dependencyJürg Billeter2017-11-221-0/+2
| | | | | | This allows running tests in parallel: ./setup.py test --addopts "-n auto"
* Accept the first character as shortcut on interruption prompts130-interactive-prompt-prefixAntoine Wacheux2017-11-212-12/+74
| | | | | | | | On interruption, this makes buildstream to accept the first character of all the possible choices as if it was the full command. This behavior has been added to the failure screen and to the interruption screen. Fixes https://gitlab.com/BuildStream/buildstream/issues/130
* doc/source/install.rst: Added instructions to install on FedoraTristan Van Berkom2017-11-211-0/+9
| | | | | | | Used the packages names we use for the docker containers we use for CI, which are fedora based. Fingers crossed that this is the right set of package names.
* setup.py: Pinning coverage down to version 4.2Tristan Van Berkom2017-11-211-1/+3
| | | | | | | Seeing random crashes with 4.4.2, these are solved by simply using version 4.2. Need to investigate and report proper bug to upstream for this.
* Removing unneeded str() statements in "{}".format() statementsTristan Van Berkom2017-11-214-13/+13
| | | | | Since these changes were effected in 3b17762a4cab23c238762ca32baa348788347473, these stringifications are now implied and no longer needed.
* integration-tests: Adding a compose test ensuring removed files in ↵Tristan Van Berkom2017-11-204-5/+56
| | | | integration are removed
* plugins/elements/compose.py: post merge fixing of compose elementTristan Van Berkom2017-11-201-19/+27
| | | | | | | | | | o Some things changed in master since this patch, notably the keyword only arguments have changed o Enhanced the user feedback to mention removed, added and modified files resulting from running integration o Dont silence messages while integrating the sandbox
* element.py: Some changes to the added compute_manifest() methodTristan Van Berkom2017-11-201-10/+2
| | | | | | | | o Use the * parameter to denote keyword-only arguments o Remove the docs mentioning that it is specifically for the compose element use case, while it's only used here currently, it is not necessarily true.
* Handle removed files from integration in compose pluginValentin David2017-11-202-20/+58
| | | | Fixes issue #147
* _ostree.py: Fix string formatting in fetch()Jürg Billeter2017-11-201-1/+2
| | | | | | | | | New-style formatting does not implicitly convert from float to int. Add explicit conversion to fix the following error: ValueError: Unknown format code 'd' for object of type 'float' Fixes: 3b17762a ("Switch old-style string formattings to new...")
* Revert "Accept the first character as shortcut on interruption prompts"Tristan Van Berkom2017-11-192-74/+12
| | | | | | | This reverts commit d05f0f433979a6ae79667bb51d4a7a5f365941d6. Reverting this commit, seems to consistently break the cmake integration test when running on gitlab
* Accept the first character as shortcut on interruption promptsAntoine Wacheux2017-11-192-12/+74
| | | | | | | | On interruption, this makes buildstream to accept the first character of all the possible choices as if it was the full command. This behavior has been added to the failure screen and to the interruption screen. Fixes https://gitlab.com/BuildStream/buildstream/issues/130
* tests/pipeline/load.py: Enhanced and added test cases for exceptionsTristan Van Berkom2017-11-1812-34/+73
| | | | | | | | | Make this into a single paramaterized test case and test a few more combinations: o Ensure that excepting works with multiple targets in play o Ensure that multiple exceptions succeed in excepting the commonly depended elements which are otherwise referred to by the target
* tests/testutils/runcli.bst: Fix get_pipeline() to not use mutable default ↵Tristan Van Berkom2017-11-181-1/+4
| | | | argument
* load.py: Add test to check intersection exceptionsTristan Maat2017-11-182-0/+24
|
* Fix testsTristan Maat2017-11-184-14/+3
|
* _pipeline.py: Adjust remove_elements to work on the 'intersection'Tristan Maat2017-11-181-38/+53
|
* Load excepted elements as part of the pipelineTristan Maat2017-11-182-13/+20
| | | | | | | | Causes --except specified elements to be loaded separately and the intersections of the except elements and the loaded pipeline to be calculated. This fixes issue #131
* main.py: Fix app initializationTristan Maat2017-11-181-6/+6
|
* utils.py: Fix variable name typoGökçen Nurlu2017-11-171-1/+1
|
* Switch old-style string formattings to new '.format()'Gökçen Nurlu2017-11-1717-80/+81
|
* _yaml.py: Remove extra brackets in Provenance classGökçen Nurlu2017-11-171-2/+2
|
* plugins/sources/tar.py: Consider link names in extractionTristan Van Berkom2017-11-171-0/+13
| | | | | | | | When extracting files from a base directory, we are normalizing the TarInfo file names so we need to also normalize the link names in the case of links and symlinks. Fixes issue #155
* tests/sources/tar.py: Test for tarballs containing linksTristan Van Berkom2017-11-173-0/+43
| | | | This reproduces issue #155
* element.py: Fixed manual signature override in docstringTristan Van Berkom2017-11-161-1/+1
| | | | | | | Now that recurse is a mandatory keyword argument, the docs should also reflect this; this must be done manually because we override the signature here in the docstring, to hide some private arguments.
* sandbox.py: Make mark_directory use keyword args97-apply-pep-3102-to-all-public-api-surfacesJonathan Maw2017-11-141-1/+1
|
* sandbox: Make sandbox.run use keyword argsJonathan Maw2017-11-143-3/+3
|
* utils.py: Make {copy,link,move}_files use keyword argsJonathan Maw2017-11-141-3/+3
|
* compose.py: Use keyword args for utils.move_filesJonathan Maw2017-11-141-1/+1
|
* utils.py: Make safe copy/link/move use keyword argsJonathan Maw2017-11-141-3/+3
| | | | | | The 'result' field is optional, and currently used only by the internals of {copy,move,link}_files. I think it makes sense to mandate that it's called as a keyword arg in future.
* plugin.py: Make timed_activity enforce keyword argsJonathan Maw2017-11-141-1/+1
|
* plugin.py: Make the logging methods use keyword argsJonathan Maw2017-11-141-5/+5
|