Quibble and Docker support downloading a complete environment and running all tests. This task requests support to download a complete environment but allow for a local repository, such as MobileFrontend, to be overridden and to run only tests for that environment. The proposed syntax is as follows:
docker run -it --rm \ -v "$(pwd)"/cache:/cache \ -v "$(pwd)"/log:/workspace/log \ -v "$(pwd)"/ref:/srv/git:ro \ -v "$(pwd)"/src:/workspace/src \ -v "$(pwd)"/vagrant/mediawiki/extensions/MobileFrontend:/workspace/src/mediawiki/extensions/MobileFrontend \ docker-registry.wikimedia.org/releng/quibble-stretch:latest \ --test extensions/MobileFrontend
In the above example, two changes occur:
- Use the local copy of MobileFrontend specified. Don't download this extension.
- Only run tests for MobileFrontend.
The use case is for testing local patches developed in a local Vagrant instance.
Potential implementation
- Specify target e.g. ZUUL_PROJECT=mediawiki/extensions/MobileFrontend
- Don't run "git clean". Maybe this should be the case when --skip-zuul and --skip-deps are passed together? Currently we'll still npm and composer install in a (non-core) target repo and run git clean there.
- Argument forcing Quibble to use an existing LocalSettings.php (slightly different than T218647).