language: php

php:
  - 5.5
  - 5.6
  - hhvm-nightly

matrix:
  allow_failures:
    - php: hhvm-nightly

env:
  - DB=mysql

services:
  - memcached
  - redis-server

notifications:
  irc:
    channels:
      - "irc.freenode.net#typo3-cms"
    on_success: change
    on_failure: always
    use_notice: true
  slack:
    rooms:
      secure: a7c9Nw3KblUQsO4np7Sa685y7tqSJ5nSvzO8hnFjKEeQlgkbnC7Qq2TBvVSr92A1UMouL+6E9ngp3cb7rSYWsNKIaHn51CjhrvlfFElTZ0qd/jLVNDf1B765i0txiIZLLed0e3871/151xBgnggsXC4hcv4mPGc9g//ZPabp++E=
    on_success: change
    on_failure: always

before_script:
  - if [ -e ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini ]; then echo "extension = memcache.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi
  - if [ -e ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini ]; then echo "extension = redis.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi
  - chmod a+x typo3/sysext/core/Build/Scripts/*
  - sudo apt-get install parallel
  - composer self-update
  - composer install

script:
  - >
    echo;
    echo "Running unit tests";
    ./bin/phpunit --colors -c typo3/sysext/core/Build/UnitTests.xml
  - >
    echo;
    export typo3DatabaseName="typo3";
    export typo3DatabaseHost="localhost";
    export typo3DatabaseUsername="root";
    export typo3DatabasePassword="";
    find . -wholename '*typo3/sysext/*/Tests/Functional/*Test.php' | parallel --gnu 'echo; echo "Running functional test suite {}"; ./bin/phpunit --colors -c typo3/sysext/core/Build/FunctionalTests.xml {}'
  - >
    echo;
    echo "Running php lint";
    /bin/bash -c "
        if ! find typo3/ -name \*.php | parallel --gnu 'php -l {}' > /tmp/errors 2>&1; then
            grep -v \"No syntax errors detected in\" /tmp/errors;
            exit 99;
        fi
    "
  - >
    echo;
    echo "Running XLF checker";
    ./typo3/sysext/core/Build/Scripts/xlfcheck.sh
