AMD64
Ruby
Git
os: osx
install: true
script: echo hi
.travis.yml
language: php

dist: trusty

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

addons:
  apt:
    packages:
      - tidy

env:
  global:
    - COMPOSER_ROOT_VERSION=4.4.x-dev

matrix:
  fast_finish: true
  include:
    - php: 5.6
      env:
        - DB=PGSQL
        - PHPCS_TEST=1
        - PHPUNIT_TEST=framework

    - php: 7.0
      env:
        - DB=PGSQL
        - PDO=1
        - PHPUNIT_TEST=framework

    - php: 7.1
      if: type IN (cron)
      env:
        - DB=MYSQL
        - PHPUNIT_COVERAGE_TEST=framework

    - php: 7.2
      env:
        - DB=MYSQL
        - PDO=1
        - PHPUNIT_TEST=framework

    - php: 7.0
      env:
        - DB=MYSQL
        - PHPUNIT_TEST=cms

    - php: 7.3
      env:
        - DB=MYSQL
        - PHPUNIT_TEST=framework

before_script:
# Extra $PATH
  - export PATH=~/.composer/vendor/bin:$PATH

# Init PHP
  - pecl channel-update pecl.php.net
  - phpenv rehash
  - phpenv config-rm xdebug.ini || true
  - echo 'memory_limit = 2048M' >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini

# Install composer dependencies
  - composer validate
  - mkdir ./public
  - if [[ $DB == PGSQL ]]; then composer require silverstripe/postgresql:2.2.x-dev --no-update; fi
  - if [[ $DB == SQLITE ]]; then composer require silverstripe/sqlite3:2.0.x-dev --no-update; fi
  - composer require silverstripe/recipe-testing:^1 silverstripe/recipe-core:4.4.x-dev silverstripe/admin:1.4.x-dev silverstripe/versioned:1.4.x-dev --no-update
  - if [[ $PHPUNIT_TEST == cms ]]; then composer require silverstripe/recipe-cms:4.4.x-dev --no-update; fi
  - if [[ $PHPCS_TEST ]]; then composer global require squizlabs/php_codesniffer:^3 --prefer-dist --no-interaction --no-progress --no-suggest -o; fi
  - composer install --prefer-source --no-interaction --no-progress --no-suggest --optimize-autoloader --verbose --profile

# Log constants to CI for debugging purposes
  - php ./tests/dump_constants.php

script:
  - if [[ $PHPUNIT_TEST ]]; then vendor/bin/phpunit --testsuite $PHPUNIT_TEST; fi
  - if [[ $PHPUNIT_COVERAGE_TEST ]]; then phpdbg -qrr vendor/bin/phpunit --testsuite $PHPUNIT_COVERAGE_TEST --coverage-clover=coverage.xml; fi
  - if [[ $PHPCS_TEST ]]; then composer run-script lint; fi
  - if [[ $PHPCS_TEST ]]; then composer run-script php-peg; fi
  - if [[ $PHPCS_TEST ]]; then git diff-files --quiet -w --relative=src; fi
  - if [[ $PHPCS_TEST ]]; then git diff -w --no-color --relative=src; fi

after_success:
  - if [[ $PHPUNIT_COVERAGE_TEST ]]; then bash <(curl -s https://codecov.io/bash) -f coverage.xml; fi
Build Config
{
  "os": "osx",
  "script": "echo hi",
  "install": true
}