language: php

php:
  - 5.4
  - 5.5
  - 5.6

sudo: false

env:
  matrix:
    - DB=mysql db_dsn='mysql://travis@0.0.0.0/cakephp_test'
    - DB=pgsql db_dsn='postgres://postgres@127.0.0.1/cakephp_test'
    - DB=sqlite db_dsn='sqlite:///:memory:'

  global:
    - DEFAULT=1

matrix:
  fast_finish: true

  include:
    - php: 5.5
      env: PHPCS=1 DEFAULT=0

    - php: 5.5
      env: COVERALLS=1 DEFAULT=0 DB=mysql db_dsn='mysql://travis@0.0.0.0/cakephp_test'

before_script:
  - composer self-update
  - composer install --prefer-dist --no-interaction

  - sh -c "if [ '$DB' = 'mysql' ]; then mysql -e 'CREATE DATABASE cakephp_test;'; fi"
  - sh -c "if [ '$DB' = 'pgsql' ]; then psql -c 'CREATE DATABASE cakephp_test;' -U postgres; fi"

  - sh -c "if [ '$PHPCS' = '1' ]; then composer require cakephp/cakephp-codesniffer:dev-master; fi"

  - sh -c "if [ '$COVERALLS' = '1' ]; then composer require --dev satooshi/php-coveralls:dev-master; fi"
  - sh -c "if [ '$COVERALLS' = '1' ]; then mkdir -p build/logs; fi"

script:
  - sh -c "if [ '$DEFAULT' = '1' ]; then phpunit --stderr; fi"
  - sh -c "if [ '$PHPCS' = '1' ]; then ./vendor/bin/phpcs -p -n --extensions=php --standard=vendor/cakephp/cakephp-codesniffer/CakePHP ./src ./tests; fi"
  - sh -c "if [ '$COVERALLS' = '1' ]; then phpunit --stderr --coverage-clover build/logs/clover.xml; fi"
  - sh -c "if [ '$COVERALLS' = '1' ]; then php vendor/bin/coveralls -c .coveralls.yml -v; fi"

notifications:
  email: false
