diff --git a/.travis.yml b/.travis.yml index 383d3de..6b59901 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,13 +1,26 @@ language: php -os: - - linux +matrix: + fast_finish: true -php: - - 7.0 + include: + - os: linux + php: '7.0' -before_script: - - composer install --ignore-platform-reqs + - os: osx + osx_image: xcode7.3 + language: generic + env: + - _OSX=10.11 + - _PHP: php70 + +before_install: + - if [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then /usr/bin/env bash build/prepare_osx_env.sh ; fi + +install: + - if [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then /usr/bin/env bash tools/handle_brew_pkg.sh "${_PHP}" ; fi + - curl -s http://getcomposer.org/installer | php + - php composer.phar install --dev --no-interaction --ignore-platform-reqs script: - bin/phpunit diff --git a/tools/handle_brew_pkg.sh b/tools/handle_brew_pkg.sh new file mode 100644 index 0000000..3e501e0 --- /dev/null +++ b/tools/handle_brew_pkg.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash + +if [[ "$#" -eq 1 ]]; then + echo "Handling \"$1\" brew package..." +else + echo "Brew failed - invalid $0 call" + exit 1; +fi + +if [[ $(brew ls --versions "$1") ]]; then + if brew outdated "$1"; then + echo "Package upgrade is not required, skipping" + else + echo "Updating package..."; + brew upgrade "$1" + if [ $? -ne 0 ]; then + echo "Upgrade failed" + exit 1 + fi + fi +else + echo "Package not available - installing..." + brew install "$1" + if [ $? -ne 0 ]; then + echo "Install failed" + exit 1 + fi +fi + +echo "Linking installed package..." +brew link "$1" \ No newline at end of file diff --git a/tools/prepare_osx_env.sh b/tools/prepare_osx_env.sh new file mode 100644 index 0000000..93303ee --- /dev/null +++ b/tools/prepare_osx_env.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +echo "Here's the OSX environment:" +sw_vers +brew --version + +echo "Updating brew..." +brew update + +if [[ "${_PHP}" == "hhvm" ]]; then + echo "Adding brew HHVM dependencies..." + brew tap hhvm/hhvm + +else + echo "Adding brew PHP dependencies..." + brew tap homebrew/dupes + brew tap homebrew/versions + brew tap homebrew/homebrew-php +fi \ No newline at end of file