# 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 on travis
#
language: php

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, 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:
  - sudo apt-get install -qq djvulibre-bin tidy
  - composer self-update --quiet --no-interaction

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 ""
      --scriptpath "/w"

script:
  - php tests/phpunit/phpunit.php

notifications:
  email: false
  irc:
    channels:
      - "chat.freenode.net#mediawiki-core"
      - "chat.freenode.net#mediawiki-feed"
    on_success: change
    on_failure: change
    skip_join: true
