language: php
dist: xenial

matrix:
  include:
    - php: 7.1
      env: DB=none;NOTESTS=1
    - php: 7.1
      env: DB=mariadb
    - php: 7.1
      env: DB=postgres
    - php: 7.1
      env: DB=sqlite3
    - php: 7.1
      env: DB=mysqli;SLOWTESTS=1
    - php: 7.1
      env: DB=mysqli # MyISAM
    - php: 7.2
      env: DB=mysqli
    - php: 7.3
      env: DB=mysqli
    - php: 7.4snapshot
      env: DB=mysqli
    - php: nightly
      env: DB=mysqli
  allow_failures:
    - php: nightly
  fast_finish: true

services:
  - redis-server
  - postgresql
  - mysql

install:
  - travis/setup-phpbb.sh $DB $TRAVIS_PHP_VERSION $NOTESTS

before_script:
  - travis/setup-database.sh $DB $TRAVIS_PHP_VERSION $NOTESTS
  - phantomjs --webdriver=8910 > /dev/null &

script:
  - travis/phing-sniff.sh $DB $TRAVIS_PHP_VERSION $NOTESTS
  - travis/check-sami-parse-errors.sh $DB $TRAVIS_PHP_VERSION $NOTESTS
  - travis/check-image-icc-profiles.sh $DB $TRAVIS_PHP_VERSION $NOTESTS
  - travis/check-executable-files.sh $DB $TRAVIS_PHP_VERSION $NOTESTS ./
  - sh -c "if [ '$SLOWTESTS' != '1' -a '$DB' = 'mysqli' ]; then phpBB/vendor/bin/phpunit tests/lint_test.php; fi"
  - sh -c "if [ '$NOTESTS' != '1' -a '$SLOWTESTS' != '1' ]; then phpBB/vendor/bin/phpunit --configuration travis/phpunit-$DB-travis.xml --verbose --stop-on-error; fi"
  - sh -c "if [ '$SLOWTESTS' = '1' ]; then phpBB/vendor/bin/phpunit --configuration travis/phpunit-$DB-travis.xml --group slow; fi"
  - sh -c "set -x;if [ '$NOTESTS' = '1' -a '$TRAVIS_PULL_REQUEST' != 'false' ]; then git remote set-branches --add origin $TRAVIS_BRANCH && git fetch && git-tools/commit-msg-hook-range.sh origin/$TRAVIS_BRANCH..$TRAVIS_PULL_REQUEST_SHA; fi"
