diff --git a/.travis.yml b/.travis.yml index ac14a9aff..d63d532ff 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,6 +15,7 @@ cache: directories: - vendor - $HOME/.composer/cache + - $HOME/opt/$WP_VERSION/$TRAVIS_PHP_VERSION env: global: - PATH="$TRAVIS_BUILD_DIR/vendor/bin:$PATH" @@ -35,7 +36,7 @@ matrix: before_install: - phpenv config-rm xdebug.ini - - if [[ $TRAVIS_PHP_VERSION = '5.6' ]]; then printf "\n" | pecl install imagick; fi + - bash bin/install-imagick.sh - php -m install: diff --git a/bin/install-imagick.sh b/bin/install-imagick.sh new file mode 100644 index 000000000..71efb6713 --- /dev/null +++ b/bin/install-imagick.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash + +set -ex + +# ImageMagick/Imagick versions to use. +IMAGEMAGICK_VERSION='6.9.7-10' +IMAGICK_VERSION='3.4.3' + +if [[ "$TRAVIS_PHP_VERSION" = '7.1' ]]; then + IMAGEMAGICK_VERSION='7.0.4-10' +fi + +# Based on http://stackoverflow.com/a/41138688/664741 +install_imagemagick() { + curl -O "https://www.imagemagick.org/download/releases/ImageMagick-$IMAGEMAGICK_VERSION.tar.xz" -f + tar xf "ImageMagick-$IMAGEMAGICK_VERSION.tar.xz" + rm "ImageMagick-$IMAGEMAGICK_VERSION.tar.xz" + cd "ImageMagick-$IMAGEMAGICK_VERSION" + + ./configure --prefix="$HOME/opt/$WP_VERSION/$TRAVIS_PHP_VERSION" --with-perl=no + make + make install + + # Don't need doc - saves around 24M. + if [[ -d "$HOME/opt/$WP_VERSION/$TRAVIS_PHP_VERSION/share/doc" ]]; then rm -rf "$HOME/opt/$WP_VERSION/$TRAVIS_PHP_VERSION/share/doc"; fi + + cd "$TRAVIS_BUILD_DIR" +} + +# Install ImageMagick if the current version isn't up to date. +PATH="$HOME/opt/$WP_VERSION/$TRAVIS_PHP_VERSION/bin:$PATH" identify -version | grep "$IMAGEMAGICK_VERSION" || install_imagemagick + +# Install Imagick for PHP. +echo "$HOME/opt/$WP_VERSION/$TRAVIS_PHP_VERSION" | pecl install -f "imagick-$IMAGICK_VERSION"