.travis.yml 3.05 KB
# Travis CI Configuration File

# Tell Travis CI we're using PHP
language: php

dist: trusty

# Setup a global environment and overide as needed
env:
  global:
    - WP_TRAVISCI=phpunit

cache:
  directories:
   - $HOME/.composer/cache/files
   - $HOME/.cache/yarn

# Test main supported versions of PHP against latest WP.
php:
  - 5.6
  - 7.0
  - 7.1
  - 7.2
  - 7.3

env:
  - WP_VERSION=latest WP_MULTISITE=0

# Next we define our matrix of additional build configurations to test against.
# The versions listed above will automatically create our first configuration,
# so it doesn't need to be re-defined below.

# Test WP trunk/master and two latest versions on minimum (5.2).
# Test WP latest two versions (4.5, 4.3) on most popular (5.5, 5.6).
# Test WP latest stable (4.5) on other supported PHP (5.3, 5.4).
# Test WP trunk/master on edge platforms (7.0, PHP nightly).

# WP_VERSION specifies the tag to use. The way these tests are configured to run
# requires at least WordPress 3.8. Specify "master" to test against SVN trunk.

matrix:

  fast_finish: true
  include:
  - name: "Coding standard check"
    php: 7.2
    env: WP_VERSION=latest WP_MULTISITE=0 RUN_PHPCS=1
  - name: "e2e tests"
    php: 7.2
    env: WP_VERSION=latest WP_MULTISITE=0 RUN_E2E=1
    addons:
      chrome: beta
      apt:
        packages:
          - nginx
  - name: "Unit tests code coverage"
    php: 7.3
    env: WP_VERSION=latest WP_MULTISITE=0 RUN_CODE_COVERAGE=1
  - name: "Ultimate Member unit tests using WordPress nightly"
    php: 7.3
    env: WP_VERSION=nightly WP_MULTISITE=0
  - php: 7.4snapshot
    env: WP_VERSION=nightly WP_MULTISITE=0
  allow_failures:
  - php: 7.3
    env: WP_VERSION=latest WP_MULTISITE=0 RUN_CODE_COVERAGE=1
  - php: 7.4snapshot
    env: WP_VERSION=nightly WP_MULTISITE=0

# whitelist branches for the "push" build check.
branches:
  only:
    - master
    #- master-stable
    #- /^branch-.*$/
    #- feature/*

# Clones WordPress and configures our testing environment.
before_script:
    - phpenv config-rm xdebug.ini
    - export PLUGIN_SLUG=$(basename $(pwd))
    - source ~/.nvm/nvm.sh
    - export PATH="$HOME/.composer/vendor/bin:$PATH" 
    - |
        if [[ ${TRAVIS_PHP_VERSION:0:2} == "7." ]]; then 
            composer global require "phpunit/phpunit=5.7.*" 
        elif [[ ${TRAVIS_PHP_VERSION:0:3} != "5.2" ]]; then 
            composer global require "phpunit/phpunit=4.8.*" 
        fi 
    - nvm install 6
    - nvm use 6
    - chmod +x ./tests/prepare-wordpress.sh
    - chmod +x ./tests/run-travis.sh
    - ./tests/prepare-wordpress.sh
  ##  - mysql -e "set global wait_timeout = 3600;"

script:
    - ./tests/run-travis.sh

sudo: false

# We need notifications for successful builds

notifications:
   webhooks: https://ultimatemember.com/travis.php
   email:
       - heychampsupertramp@gmail.com
       - nsinelnikov.work@gmail.com
        # Encrypted Slack notification address.
       #- secure: "WQdTdmYuifSW0hiJGXpQGKystMASC50QvxHlyUL5SM3h5GP8aCgeSsHuXvKPe3dT3Pffhk0dSHBfDtdWFwSHW/upURhg0vs4dm7+nxxvGZiTPzKcuAIjgvCoqWM7teyda/XqFGNSnv+XsT34uoyPhhFgd45T3oS+QQ3aNCruFak="