diff --git a/.travis.yml b/.travis.yml index 857fef4b8..6ae449d95 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,6 +11,7 @@ cache: directories: - ${HOME}/.cache/pip - ${HOME}/.composer/cache/files + - ${HOME}/php-ext env: global: @@ -46,11 +47,28 @@ before_install: - mongod --version - mongo-orchestration --version - export MO_PATH=`python -c 'import mongo_orchestration; from os import path; print(path.dirname(mongo_orchestration.__file__));'` + - | + INI=~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini + # tpecl is a helper to compile and cache php extensions + tpecl () { + local ext_name=$1 + local ext_so=$2 + local ext_dir=$(php -r "echo ini_get('extension_dir');") + local ext_cache=~/php-ext/$(basename $ext_dir)/$ext_name + if [[ -e $ext_cache/$ext_so ]]; then + echo extension = $ext_cache/$ext_so >> $INI + else + mkdir -p $ext_cache + echo yes | pecl install -f $ext_name && + cp $ext_dir/$ext_so $ext_cache + fi + } + export -f tpecl before_script: - mongo-orchestration start - pushd ${MO_PATH} && ${TRAVIS_BUILD_DIR}/.travis/mo.sh configurations/servers/clean.json start && popd - - pecl install -f mongodb-${DRIVER_VERSION} + - tpecl mongodb-${DRIVER_VERSION} mongodb.so - php --ri mongodb - composer install --no-interaction --no-progress --no-suggest - ulimit -c