# @file
# .travis.yml - Drupal for Travis CI Integration
#
# Template provided by https://github.com/LionsAd/drupal_ti.
#
# Based for simpletest upon:
#   https://github.com/sonnym/travis-ci-drupal-module-example

language: php

sudo: false

dist: trusty

addons:
  chrome: stable

php:
  - 7.2
  - 7.1
  - 7.0

branches:
  except:
    - "7.x-1.x"

matrix:
  fast_finish: true

env:
  global:
    - PHANTOMJS2_VERSION="2.0.0"
    # add composer's global bin directory to the path
    # see: https://github.com/drush-ops/drush#install---composer
    - PATH="$PATH:$HOME/.composer/vendor/bin"
    # force composer 1.8+ to use a specific folder as home
    - export COMPOSER_HOME="$HOME/.composer/"

    # Configuration variables.
    - DRUPAL_TI_MODULE_NAME="commerce"
    - DRUPAL_TI_SIMPLETEST_GROUP="commerce"

    # Define runners and environment vars to include before and after the
    # main runners / environment vars.
    #- DRUPAL_TI_SCRIPT_DIR_BEFORE="./drupal_ti/before"
    #- DRUPAL_TI_SCRIPT_DIR_AFTER="./drupal_ti/after"

    # The environment to use, supported are: drupal-7, drupal-8
    - DRUPAL_TI_ENVIRONMENT="drupal-8"
    - DRUPAL_TI_CORE_BRANCH="8.9.x"

    # Drupal specific variables.
    - DRUPAL_TI_DB="drupal_travis_db"
    - DRUPAL_TI_DB_URL="mysql://root:@127.0.0.1/drupal_travis_db"
    # Note: Do not add a trailing slash here.
    - DRUPAL_TI_WEBSERVER_URL="http://127.0.0.1"
    - DRUPAL_TI_WEBSERVER_PORT="8080"

    # Simpletest specific commandline arguments, the DRUPAL_TI_SIMPLETEST_GROUP is appended at the end.
    - DRUPAL_TI_SIMPLETEST_ARGS="--verbose --color --concurrency 25 --url $DRUPAL_TI_WEBSERVER_URL:$DRUPAL_TI_WEBSERVER_PORT --types Simpletest,PHPUnit-Unit,PHPUnit-Kernel,PHPUnit-Functional"
    - DRUPAL_TI_SIMPLETEST_JS_ARGS="--verbose --color --concurrency 5 --url $DRUPAL_TI_WEBSERVER_URL:$DRUPAL_TI_WEBSERVER_PORT --types PHPUnit-FunctionalJavascript"

    # === Behat specific variables.
    # This is relative to $TRAVIS_BUILD_DIR
    - DRUPAL_TI_BEHAT_DIR="./tests/behat"
    # These arguments are passed to the bin/behat command.
    - DRUPAL_TI_BEHAT_ARGS=""
    # Specify the filename of the behat.yml with the $DRUPAL_TI_DRUPAL_DIR variables.
    - DRUPAL_TI_BEHAT_YML="behat.yml.dist"
    # This is used to setup Xvfb.
    - DRUPAL_TI_BEHAT_SCREENSIZE_COLOR="1280x1024x16"
    # The version of selenium that should be used.
    - DRUPAL_TI_BEHAT_SELENIUM_VERSION="2.44"
    # Set DRUPAL_TI_BEHAT_DRIVER to "selenium" to use "firefox" or "chrome" here.
    - DRUPAL_TI_BEHAT_DRIVER="phantomjs"
    - DRUPAL_TI_BEHAT_BROWSER="firefox"

    # PHPUnit specific commandline arguments.
    - DRUPAL_TI_PHPUNIT_ARGS=""
    # Specifying the phpunit-core src/ directory is useful when e.g. a vendor/
    # directory is present in the module directory, which phpunit would then
    # try to find tests in. This option is relative to $TRAVIS_BUILD_DIR.
    #- DRUPAL_TI_PHPUNIT_CORE_SRC_DIRECTORY="./tests/src"

    # Code coverage via coveralls.io
    - DRUPAL_TI_COVERAGE="satooshi/php-coveralls:0.6.*"
    # This needs to match your .coveralls.yml file.
    - DRUPAL_TI_COVERAGE_FILE="build/logs/clover.xml"

    # Debug options
    #- DRUPAL_TI_DEBUG="-x -v"
    # Set to "all" to output all files, set to e.g. "xvfb selenium" or "selenium",
    # etc. to only output those channels.
    #- DRUPAL_TI_DEBUG_FILE_OUTPUT="selenium xvfb webserver"

  matrix:
    # [[[ SELECT ANY OR MORE OPTIONS ]]]
    #- DRUPAL_TI_RUNNERS="phpunit"
    - DRUPAL_TI_RUNNERS="simpletest"
    #- DRUPAL_TI_RUNNERS="behat"
    #- DRUPAL_TI_RUNNERS="phpunit simpletest behat"

mysql:
  database: drupal_travis_db
  username: root
  encoding: utf8

before_install:
  # Remove xdebug. We aren't generating code coverage, and it slows down Composer.
  - phpenv config-rm xdebug.ini || true
  # Add the oauth token to prevent GitHub timeouts.
  - git config --global github.accesstoken $GITHUB_OAUTH_TOKEN
  - composer global require "hirak/prestissimo:^0.3"
  - composer global require "lionsad/drupal_ti:dev-master#0d7c41abd1efa11726d7c908ae7a39bbeea905df"
  - composer global require "squizlabs/php_codesniffer:3.*"
  - drupal-ti before_install

install:
  - drupal-ti install

  # Install Chromedriver.
  - mkdir travis-chromedriver
  - CHROMEDRIVER_VERSION=$(wget http://chromedriver.storage.googleapis.com/LATEST_RELEASE -qO-)
  - wget http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip
  - unzip chromedriver_linux64.zip -d travis-chromedriver && rm -f chromedriver_linux64.zip
  - chmod a+x travis-chromedriver/chromedriver
  - export PATH=$PWD/travis-chromedriver:$PATH
  - chromedriver --version

  # Installed after Drush to prevent Composer conflicts around symfony/yaml.
  - composer global require "drupal/coder:8.3.*"
  - phpcs --config-set installed_paths $HOME/.composer/vendor/drupal/coder/coder_sniffer

before_script:
  - drupal-ti --include ".travis-before-script.sh"
  - drupal-ti before_script

script:
  - phpcs --standard=phpcs.xml src -s
  - phpcs --standard=phpcs.xml modules -s
  - phpcs --standard=phpcs.xml tests -s
  - phpcs --standard=phpcs.xml commerce.module

  - drupal-ti script
  - drupal-ti --include ".travis-simpletest-js.sh"

after_script:
  - drupal-ti after_script

notifications:
  email: false
