|
@@ -3,54 +3,73 @@
|
|
|
set -e
|
|
|
set -x
|
|
|
|
|
|
-if [[ "$(uname -s)" == 'Darwin' ]]; then
|
|
|
- export HOMEBREW_NO_AUTO_UPDATE=1
|
|
|
- export HOMEBREW_LOGS=~/brew-logs
|
|
|
- export HOMEBREW_TEMP=~/brew-temp
|
|
|
- mkdir $HOMEBREW_LOGS
|
|
|
- mkdir $HOMEBREW_TEMP
|
|
|
- brew update > /dev/null
|
|
|
- brew cleanup > /dev/null # do this here, so it won't automatically trigger in the middle of other stuff
|
|
|
- brew outdated pkg-config || brew upgrade pkg-config
|
|
|
- # do NOT update openssl 1.0.x, brew will also update a lot of dependent pkgs (and their dependencies) then!
|
|
|
- #brew outdated openssl || brew upgrade openssl
|
|
|
- export PKG_CONFIG_PATH="/usr/local/opt/openssl@1.1/lib/pkgconfig:$PKG_CONFIG_PATH"
|
|
|
- brew install readline
|
|
|
- export PKG_CONFIG_PATH="/usr/local/opt/readline/lib/pkgconfig:$PKG_CONFIG_PATH"
|
|
|
- brew install zstd
|
|
|
- brew install lz4
|
|
|
- brew install xz # required for python lzma module
|
|
|
- brew install Caskroom/cask/osxfuse
|
|
|
-
|
|
|
- brew outdated pyenv || brew upgrade pyenv
|
|
|
- if which pyenv > /dev/null; then
|
|
|
- eval "$(pyenv init -)"
|
|
|
- fi
|
|
|
+# Travis clones with depth=50 which might be too shallow for git describe, see https://github.com/pypa/setuptools_scm/issues/93
|
|
|
+git fetch --unshallow --tags
|
|
|
+
|
|
|
+if [ "${TRAVIS_OS_NAME}" = "osx" ]
|
|
|
+then
|
|
|
+
|
|
|
+ # Update brew itself
|
|
|
+ export HOMEBREW_NO_AUTO_UPDATE=1 # Auto-updating everything would take too much time
|
|
|
+ brew update
|
|
|
+ brew cleanup # Preempt possible scheduled clean-up so it doesn't clutter the log later
|
|
|
+
|
|
|
+ # Install and/or upgrade dependencies
|
|
|
+ #brew install zstd || brew upgrade zstd # Installation takes very long due to CMake dependency and isn't necessary for the tests as borg comes bundled with zstd anyway
|
|
|
+ brew install lz4 || brew upgrade lz4
|
|
|
+ brew install xz || brew upgrade xz # Required for Python lzma module
|
|
|
+ brew install Caskroom/cask/osxfuse || brew upgrade Caskroom/cask/osxfuse # Required for Python llfuse module
|
|
|
+ brew install pyenv || brew upgrade pyenv
|
|
|
|
|
|
- case "${TOXENV}" in
|
|
|
- py35)
|
|
|
- pyenv install 3.5.3 # minimum for openssl 1.1.x
|
|
|
- pyenv global 3.5.3
|
|
|
- ;;
|
|
|
- py37)
|
|
|
- pyenv install 3.7.0
|
|
|
- pyenv global 3.7.0
|
|
|
- ;;
|
|
|
- esac
|
|
|
+ # Configure pkg-config to use OpenSSL 1.1 from Homebrew
|
|
|
+ export PKG_CONFIG_PATH="/usr/local/opt/openssl@1.1/lib/pkgconfig:${PKG_CONFIG_PATH}"
|
|
|
+
|
|
|
+ # Configure pyenv with Python version according to TOXENV
|
|
|
+ eval "$(pyenv init -)"
|
|
|
+ if [ "${TOXENV}" = "py35" ]
|
|
|
+ then
|
|
|
+ pyenv install 3.5.3 # Minimum version for OpenSSL 1.1.x
|
|
|
+ pyenv global 3.5.3
|
|
|
+ elif [ "${TOXENV}" = "py37" ]
|
|
|
+ then
|
|
|
+ pyenv install 3.7.0
|
|
|
+ pyenv global 3.7.0
|
|
|
+ else
|
|
|
+ printf '%s\n' "Unexpected value for TOXENV environment variable"
|
|
|
+ exit 1
|
|
|
+ fi
|
|
|
pyenv rehash
|
|
|
- python -m pip install --user virtualenv
|
|
|
-else
|
|
|
- pip install virtualenv
|
|
|
+
|
|
|
+elif [ "${TRAVIS_OS_NAME}" = "linux" ]
|
|
|
+then
|
|
|
+
|
|
|
+ # Install dependencies
|
|
|
sudo apt-get update
|
|
|
sudo apt-get install -y pkg-config fakeroot
|
|
|
- #sudo apt-get install -y liblz4-dev # too old on trusty and xenial
|
|
|
- #sudo apt-get install -y libzstd-dev # too old on trusty and xenial
|
|
|
+ #sudo apt-get install -y liblz4-dev # Too old on trusty and xenial, but might be useful in future versions
|
|
|
+ #sudo apt-get install -y libzstd-dev # Too old on trusty and xenial, but might be useful in future versions
|
|
|
sudo apt-get install -y libacl1-dev
|
|
|
- sudo apt-get install -y libfuse-dev fuse # optional, for FUSE support
|
|
|
+ sudo apt-get install -y libfuse-dev fuse # Required for Python llfuse module
|
|
|
+
|
|
|
+else
|
|
|
+
|
|
|
+ printf '%s\n' "Unexpected value for TRAVIS_OS_NAME environment variable"
|
|
|
+ exit 1
|
|
|
+
|
|
|
fi
|
|
|
|
|
|
+# Setup and activate virtual environment
|
|
|
+python -m pip install virtualenv
|
|
|
python -m virtualenv ~/.venv
|
|
|
source ~/.venv/bin/activate
|
|
|
+
|
|
|
+# Recent versions of OS X don't allow kernel extensions which makes the osxfuse tests fail; those versions are marked with SKIPFUSE=true in .travis.yml
|
|
|
+if [ "${SKIPFUSE}" = "true" ]
|
|
|
+then
|
|
|
+ truncate -s 0 requirements.d/fuse.txt
|
|
|
+fi
|
|
|
+
|
|
|
+# Install requirements
|
|
|
pip install -r requirements.d/development.txt
|
|
|
pip install codecov
|
|
|
python setup.py --version
|