We should migrate the job operations-mw-config-composer-hhvm-jessie to a Docker based one.
operations/mediawiki-config has composer.lock and vendor directory committed in. Though we would still need to install the development dependencies.
Giving it a try with a container:
cd ~/projects/operations/mediawiki-config hashar@pico:~/projects/operations/mediawiki-config(masteru=)$ docker run --rm -it -v "$(pwd)":/src docker-registry.wikimedia.org/releng/composer-test-hhvm:0.2.1 + cd /src + composer --ansi validate --no-check-publish ./composer.json is valid, but with a few warnings See https://getcomposer.org/doc/04-schema.md for details on the schema No license specified, it is recommended to do so. For closed-source software you may use "proprietary" as license. require.mongofill/mongofill : unbound version constraints (dev-master) should be avoided + composer install --no-progress --prefer-dist Loading composer repositories with package information Installing dependencies (including require-dev) from lock file Your requirements could not be resolved to an installable set of packages. Problem 1 - Installation request for doctrine/instantiator 1.1.0 -> satisfiable by doctrine/instantiator[1.1.0]. - doctrine/instantiator 1.1.0 requires php ^7.1 -> your HHVM version does not satisfy that requirement. Problem 2 - Installation request for phpdocumentor/reflection-docblock 4.1.1 -> satisfiable by phpdocumentor/reflection-docblock[4.1.1]. - phpdocumentor/reflection-docblock 4.1.1 requires php ^7.0 -> your HHVM version does not satisfy that requirement. Problem 3 - doctrine/instantiator 1.1.0 requires php ^7.1 -> your HHVM version does not satisfy that requirement. - phpunit/phpunit-mock-objects 2.3.8 requires doctrine/instantiator ^1.0.2 -> satisfiable by doctrine/instantiator[1.1.0]. - Installation request for phpunit/phpunit-mock-objects 2.3.8 -> satisfiable by phpunit/phpunit-mock-objects[2.3.8].
The Jenkins job is very specific to that repo, it is in integration/config:
# Runs 'composer validate' and 'composer test', for the # operations/mediawiki-config repo. Uses fetch-composer-dev to install require-dev # packages while preserving non-dev packages from vendor in Git. (T85947) # Avoid generic jobs to ensure it stays out of the # MediaWiki gate-and-submit queue. (T101908) - job: name: 'operations-mw-config-composer-hhvm-jessie' node: ci-jessie-wikimedia defaults: use-remoteonly-zuul concurrent: true triggers: - zuul builders: - castor-load - composer-validate: dir: '.' - fetch-composer-dev - composer-test: dir: '.' publishers: - castor-save
We need the composer container to somehow run fetch-composer-dev (that is a slave script in integration/jenkins) and skip composer install entirely.
I am not sure how it works on the Nodepool instance. The PHP version should be set to hhvm.