Page MenuHomePhabricator

find a way to deploy PHPUnit on production machines
Closed, ResolvedPublic


Our first Jenkins runner (gallium) had PHPUnit installed using pear. We then upgraded it from time to time using the pear command.

This has at least two issues:

  • we blindly install from a third party repository
  • the update has to be done manually on each slave (currently two: gallium and lanthanum).

We would need to streamline PHPUnit upgrade process. Either by having it provided by a Debian package or using git-deploy.


  • the Debian package ship 3.6.x while we are relying on PHPUnit 3.7.x
  • there is no tutorials for git-deploy

This prevents us from running PHPUnit jobs on any slaves (bug 53594)

Version: wmf-deployment
Severity: normal



Event Timeline

bzimport raised the priority of this task from to High.Nov 22 2014, 2:25 AM
bzimport set Reference to bz54762.

Got to find a solution with ops. Not sure how to do it though.

So pear basically sucks which is not a breaking news. I instead relied on composer.

The git repository integration/phpunit hold a snapshot of PHPUnit has installed via composer. Related changes: README + composer.json result of composer install

The MediaWiki core PHPUnit wrapper can be pointed to it using --with-phpunitdir.

php phpunit.php --with-phpunitdir /contint-phpunit/vendor/phpunit/phpunit

Will attempt to integrate that with the deployment system.

Change 92510 had a related patch set uploaded by Hashar:
deployment: integration/phpunit for Jenkins CI slaves

Change 92510 merged by Akosiaris:
deployment: integration/phpunit for Jenkins CI slaves

YAY : 'finish' for 'integration/phpunit' completed successfully (now at integration/phpunit-20131029-151743)

Now using the deployment system!!!!!!!

So we get deployment now :-]

Still have to update our jobs / macro / shell script, which is now bug 56317.

Same as been done for php code sniffer using integration/phpcs.git