Apache is a multithreaded backend, which will make it possible to run tests concurrently, reducing runtime. Migrating the backend can be done in steps. The main issue we expect to run into are race conditions from test or production code that was not expecting a multithreaded backend, for example assuming a user exists after creating it in a client background thread.
-
Add wmf-quibble-apache-selenium-php72-docker to the "experimental" phase in CI config for the Wikibase repo. -
Copy "extension-quibble" and modify to use apache jobs. - Migrate Wikibase repo to use the apache job as its default CI.
- Fix any issues preventing Wikibase quibble+apache tests from passing.
- Enable wdio concurrency (may move to a subtask).
Some of the issues can be reproduced locally using this command:
docker run \ --volume `pwd`/src:/workspace/src \ --volume `pwd`/cache:/cache \ --volume `pwd`/ref:/srv/git:ro \ --volume `pwd`/log:/workspace/log \ --tmpfs /workspace/db:size=320M \ --init --rm \ -e ZUUL_PROJECT=mediawiki/extensions/Wikibase \ docker-registry.wikimedia.org/releng/quibble-buster-php72-apache:1.1.0 \ --run selenium,api-testing