# @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 php: - 5.3 - 5.4 - 5.5 - 5.6 - 7 - hhvm branches: only: - "7.x-1.x" - "8.x-1.x" cache: apt: true directories: - $HOME/drupal-ti-cache matrix: fast_finish: true allow_failures: - php: hhvm - php: 7 include: # Don't need to test twice on all versions, PHP 5.4 is enough. - php: 5.4 env: DRUPAL_TI_RUNNERS="phpunit" DRUPAL_TI_SAVE_CACHE="0" env: global: # add composer's global bin directory to the path # see: https://github.com/drush-ops/drush#install---composer - PATH="$PATH:$HOME/.composer/vendor/bin" # Drupal specific vars. - DRUPAL_TI_MODULE_NAME="service_container" - 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. - DRUPAL_TI_SIMPLETEST_ARGS="--verbose --color --concurrency 4 --url $DRUPAL_TI_WEBSERVER_URL:$DRUPAL_TI_WEBSERVER_PORT $DRUPAL_TI_MODULE_NAME" # PHPUnit specific commandline arguments. - DRUPAL_TI_PHPUNIT_ARGS="" # 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" # Cache options # Use this variable to use another cache directory, usually not needed to be changed. - DRUPAL_TI_CACHE_DIR="$HOME/drupal-ti-cache/" # Set to 0 or comment out to disable cache loading. - DRUPAL_TI_LOAD_CACHE="1" # Set to 0 to disable cache saving, useful with many variants. # Note: Setting this to "0" will remove the .casher directory to # avoid race conditions between builds. - DRUPAL_TI_SAVE_CACHE="1" # Setup dirs to cache relative to another environment variable. - DRUPAL_TI_CACHE_DIRS_HOME=".composer|.drush|.dist" - DRUPAL_TI_CACHE_DIRS_TRAVIS_BUILD_DIR="tests/vendor" matrix: #- DRUPAL_TI_RUNNERS="phpunit" - DRUPAL_TI_RUNNERS="phpunit simpletest" mysql: database: drupal_travis_db username: root encoding: utf8 before_install: # Restore home directory from cache. - mkdir -p "$DRUPAL_TI_CACHE_DIR"/HOME - if [ "$DRUPAL_TI_LOAD_CACHE" = "1" ]; then rsync -a "$DRUPAL_TI_CACHE_DIR"/HOME/ "$HOME/"; fi # Update composer - composer self-update # Download drupal_ti - if not cached - if [ -f "$HOME/.composer/vendor/bin/drupal-ti" ]; then composer global install; else composer global require "lionsad/drupal_ti:dev-master"; fi # Restore caches from $DRUPAL_TI_CACHE_DIR/TRAVIS_BUILD_DIR to $TRAVIS_BUILD_DIR # Note: HOME dir was already synced manually above. - drupal-ti --load-cache TRAVIS_BUILD_DIR # Setup tests - cd ./tests - drupal-ti before_install install: - drupal-ti install before_script: - drupal-ti before_script script: - drupal-ti script # Syncs $DRUPAL_TI_CACHE_DIRS_{*} to $DRUPAL_TI_CACHE_DIR/{*} # Has internal optimizations for .composer and .drush. - drupal-ti --save-cache TRAVIS_BUILD_DIR HOME # Do some manual caching as well - if [ "$DRUPAL_TI_SAVE_CACHE" = "1" ]; then rsync -a composer.{json,lock} "$DRUPAL_TI_CACHE_DIR"/TRAVIS_BUILD_DIR/tests/; fi # Delete composer generated files that screw up cache detection. - rm -f "$DRUPAL_TI_CACHE_DIR"/TRAVIS_BUILD_DIR/tests/.composer/vendor/composer/*.php - rm -f "$DRUPAL_TI_CACHE_DIR"/TRAVIS_BUILD_DIR/tests/.composer/vendor/autoload.php # Tests for differences and touches a file if any are detected (optional). - du -sh "$DRUPAL_TI_CACHE_DIR" - drupal-ti --sync-cache after_script: - drupal-ti after_script after_success: - bash <(curl -s https://codecov.io/bash) # -f "$DRUPAL_TI_COVERAGE_FILE" notifications: email: false webhooks: urls: - https://webhooks.gitter.im/e/0c7b5a71d435245837a1 on_success: always on_failure: always on_start: false