The latest Zuul changes a lot about how jobs are defined. We need to have some assurance that we can run MediaWiki tests there.
Running Quibble there is a good step.
Here is the full list of jobs that runs for the mainline branch of MediaWiki in our existing Zuul:
| castor-save-workspace-cache | `rsync` for #castor surely the caching would be handled differently
| mediawiki-core-javascript-docker-publish |
| mediawiki-core-php74-phan-docker | #phan
| mediawiki-core-php80-phan-docker | #phan
| mediawiki-core-php81-phan-docker | #phan
| mediawiki-fresnel-patch-docker | #fresnel
| mediawiki-i18n-check-docker | A `grep`
| mwcore-codehealth-master-non-voting | With SonarQube for reporting
| mwcore-codehealth-patch | With SonarQube for reporting
| mwcore-phpunit-coverage-patch |
| mwgate-node16-docker | Merely runs `npm ci && npm test`
| php-composer-security-docker |
| publish-to-doc | `rsync` to #doc.wikimedia.org
| selenium-daily-beta-MediaWiki | Webdriver.io tests against #beta-cluster-infrastructure
| selenium-daily-betacommons-MediaWiki | Webdriver.io tests #beta-cluster-infrastructure
| trigger-mediawiki-pipeline-publish |
The jobs below are based on #quibble, they invoke the CI image passing ZUUL environment variables, different options to Quibble and set of dependencies to clone based on integration/config zuul/parameters_functions.py
| mediawiki-quibble-apitests-vendor-php74-docker |
| mediawiki-quibble-composer-mysql-php74-docker |
| mediawiki-quibble-composer-mysql-php80-docker |
| mediawiki-quibble-composer-mysql-php81-docker |
| mediawiki-quibble-composertest-php74-docker |
| mediawiki-quibble-selenium-vendor-mysql-php74-docker |
| mediawiki-quibble-vendor-mysql-php73-docker |
| mediawiki-quibble-vendor-mysql-php74-docker |
| mediawiki-quibble-vendor-mysql-php80-docker |
| mediawiki-quibble-vendor-mysql-php81-docker |
| mediawiki-quibble-vendor-postgres-php74-docker |
| mediawiki-quibble-vendor-sqlite-php74-docker |
| quibble-vendor-mysql-php74-phpunit-standalone-docker | (no idea)
| wmf-quibble-core-vendor-mysql-php74-docker |
| wmf-quibble-core-vendor-mysql-php81-docker |
| wmf-quibble-selenium-php74-docker |
| wmf-quibble-selenium-php81-docker |
Many are doing similar things. This task entails:
1. Understanding the jobs above
2. Getting a subset of them running as a proof-of-concept in the new Zuul system
3. Documenting anything that needs more thought
It's a big task, so breaking it down by job-group is probably appropriate.