felixarntz/global-admin

View on GitHub
.travis.yml

Summary

Maintainability
Test Coverage
sudo: false
dist: trusty
language: php
cache:
  directories:
    - node_modules
    - vendor
    - $HOME/.composer/cache
matrix:
  include:
    - php: 7.1
      env: WP_VERSION=master WP_MULTISITE=1 PHPLINT=1 COVERAGE=1
    - php: 5.2
      env: WP_VERSION=4.9 WP_MULTISITE=1 PHPLINT=1
      dist: precise
    - php: 7.1
      env: WP_VERSION=4.9 WP_MULTISITE=1
    - php: 7.0
      env: WP_VERSION=4.9 WP_MULTISITE=1
    - php: 5.6
      env: WP_VERSION=4.9 WP_MULTISITE=1
    - php: 5.6
      env: WP_VERSION=4.9 WP_MULTISITE=1 WP_TRAVIS_OBJECT_CACHE=true
      services: memcached
    - php: 5.5
      env: WP_VERSION=4.9 WP_MULTISITE=1
    - php: 5.4
      env: WP_VERSION=4.9 WP_MULTISITE=1
    - php: 5.3
      env: WP_VERSION=4.9 WP_MULTISITE=1
      dist: precise
    - php: nightly
      env: WP_VERSION=4.9 WP_MULTISITE=1
  allow_failures:
    - php: nightly
      env: WP_VERSION=4.9 WP_MULTISITE=1
before_script:
- PLUGIN_SLUG=$(basename $(pwd))
- export WP_DEVELOP_DIR=/tmp/wordpress/
- git clone --depth=50 --branch="$WP_VERSION" git://develop.git.wordpress.org/ /tmp/wordpress
- cd ..
- cp -r "$PLUGIN_SLUG" "/tmp/wordpress/src/wp-content/plugins/$PLUGIN_SLUG"
- cd /tmp/wordpress/
- cp wp-tests-config-sample.php wp-tests-config.php
- sed -i "s/youremptytestdbnamehere/wordpress_tests/" wp-tests-config.php
- sed -i "s/yourusernamehere/travis/" wp-tests-config.php
- sed -i "s/yourpasswordhere//" wp-tests-config.php
- mysql -e "CREATE DATABASE wordpress_tests;" -uroot
- cd "/tmp/wordpress/src/wp-content/plugins/$PLUGIN_SLUG"
- phpenv rehash
- |
  if [[ "$WP_TRAVIS_OBJECT_CACHE" == "true" ]]; then
    cp tests/phpunit/includes/object-cache.php /tmp/wordpress/src/wp-content/object-cache.php
    echo "extension = memcached.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
  fi
- |
  if [[ "$COVERAGE" != "1" ]]; then
    stable='^[0-9\.]+$'
    if [[ "$TRAVIS_PHP_VERSION" =~ $stable ]]; then
      if [ -f ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/xdebug.ini ]; then
        phpenv config-rm xdebug.ini
      fi
    fi
  else
    curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
    chmod +x ./cc-test-reporter
    ./cc-test-reporter before-build
  fi
- |
  case "$TRAVIS_PHP_VERSION" in
    5.6|5.5|5.4|5.3)
      composer global require "phpunit/phpunit:^4"
      ;;
    5.2)
      ;;
    *)
      composer selfupdate 1.0.0 --no-interaction
      composer install --dev --no-interaction
      ;;
  esac
script:
- |
  if [[ "$PHPLINT" == "1" ]]; then
    find -L .  -path ./vendor -prune -o -name '*.php' -print0 | xargs -0 -n 1 -P 4 php -l
  fi
- |
  if [[ -z "$CODECLIMATE_REPO_TOKEN" ]]; then
    COVERAGE="0"
  fi
- |
  case "$TRAVIS_PHP_VERSION" in
    5.6|5.5|5.4|5.3|5.2)
      phpunit -c phpunit.xml
      ;;
    *)
      if [[ "$COVERAGE" == "1" ]]; then
        mkdir -p build/logs
        vendor/bin/phpunit -c phpunit.xml --coverage-clover build/logs/clover.xml
      else
        vendor/bin/phpunit -c phpunit.xml
      fi
      ;;
  esac
after_script:
- |
  if [[ "$COVERAGE" == "1" ]]; then
    ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
  fi
notifications:
  email: false