Enable Travis CI for PostgreSQL
authorTim Landscheidt <tim@tim-landscheidt.de>
Thu, 18 Oct 2012 19:36:41 +0000 (19:36 +0000)
committerOri.livneh <ori@wikimedia.org>
Fri, 7 Nov 2014 19:17:09 +0000 (19:17 +0000)
Setting up Jenkins tests for PostgreSQL is not a priority for WMF, so
this change enables Travis CI tests run against a PostgreSQL database.

At the moment, those tests will fail because various fixes for
PostgreSQL issues are still pending review.  However carefully testing
individual commits (cf. for example
https://travis-ci.org/scfc/mediawiki-core/builds/40319020) shows that
the test setup itself is working as expected.

Travis CI's hhvm does not support PostgreSQL, so for now this change
only tests PostgreSQL with PHP 5.3.

Also the range of branches that tests are run against is widened to
include travis-ci/*.  This allows developers to enable Travis CI in
their GitHub fork of wikimedia/mediawiki and then push to such a
branch without having to mess up the master or wmf/* branches with
their defined meaning.

Bug: 37602
Change-Id: I9c2efa3fbc589d2d4198120ca80501124b1b16b9

.travis.yml

index 6e07653..512d735 100644 (file)
@@ -12,13 +12,29 @@ php:
   - hhvm-nightly
   - 5.3
 
+env:
+  - dbtype=mysql
+  - dbtype=postgres
+
+# TODO: Travis CI's hhvm does not support PostgreSQL at the moment.
+matrix:
+  exclude:
+    - php: hhvm-nightly
+      env: dbtype=postgres
+
 services:
   - mysql
 
 branches:
-  # Test changes in master and in Wikimedia's production branches.
+  # Test changes in master, in Wikimedia's production and in arbitrary
+  # Travis CI branches.  The latter allows developers to enable Travis
+  # CI in their GitHub fork of wikimedia/mediawiki and then push
+  # changes they like to test to branches like
+  # "travis-ci/test-this-awesome-change" without having to mess up the
+  # master and wmf/* branches and their defined meaning.
   only:
     - master
+    - /^travis-ci\/.*$/
     - /^wmf\/.*$/
 
 before_install:
@@ -27,9 +43,11 @@ before_install:
 
 before_script:
   - composer install --prefer-source --quiet --no-interaction
+  - if [ "$dbtype" = postgres ]; then psql -c "CREATE DATABASE traviswiki WITH OWNER travis;" -U postgres; fi
   - >
       php maintenance/install.php traviswiki admin
       --pass travis
+      --dbtype "$dbtype"
       --dbname traviswiki
       --dbuser travis
       --dbpass ""