Add Travis CI job configuration for testing MediaWiki on HHVM
authorOri Livneh <ori@wikimedia.org>
Mon, 23 Dec 2013 05:44:51 +0000 (21:44 -0800)
committerOri Livneh <ori@wikimedia.org>
Mon, 23 Dec 2013 05:57:52 +0000 (21:57 -0800)
Travis CI is a popular continuous integration service that provides free
automated testing to FOSS projects. Ten days ago, the HHVM team announced that
Travis CI's build environment provides HHVM by default. This patch contains a
Travis CI job configuration that runs MediaWiki's test suite using HHVM.
Because we replicate changes to GitHub, merging this change and enabling the
Travis CI hook in the repository configuration on GitHub will cause Travis CI
to run the tests on each commit.

Change-Id: Ia18cba5facb7f0b506e962df2f114338af571b8a

.travis.yml [new file with mode: 0644]

diff --git a/.travis.yml b/.travis.yml
new file mode 100644 (file)
index 0000000..84fa456
--- /dev/null
@@ -0,0 +1,46 @@
+# Travis CI build configuration for MediaWiki
+# <https://travis-ci.org/wikimedia/mediawiki-core>
+#
+# The Wikimedia Foundation uses a self-hosted Jenkins instance to run unit
+# tests, but it tests code against the version of PHP that is deployed on
+# Wikimedia's production cluster. This Travis CI configuration is designed to
+# complement that setup by testing MediaWiki against HHVM.
+#
+language: php
+
+php:
+  - hhvm
+
+services:
+  - mysql
+
+branches:
+  # Test changes in master and in Wikimedia's production branches.
+  only:
+    - master
+    - /^wmf\/.*$/
+
+before_install:
+  - sudo apt-get install -qq djvulibre-bin tidy
+
+before_script:
+  # Initialise submodules, in case we're testing a Wikimedia production branch.
+  - git submodule update --init --recursive
+  # Travis CI's HHVM environment provides PHPUnit as a phar file, but
+  # MediaWiki's test suite only works if individual PHPUnit files are
+  # actual files on disk (bug 58881).
+  - composer require 'phpunit/phpunit=3.7.*'
+  - >
+      php maintenance/install.php testwiki admin
+      --pass travis
+      --dbname traviswiki
+      --dbuser travis
+      --dbpass ""
+      --scriptpath "/w"
+
+script:
+  - >
+      hhvm --php
+      -d include_path=".$(printf ':%s' vendor/phpunit/*)"
+      -d date.timezone="Etc/UTC"
+      tests/phpunit/phpunit.php