| #!/bin/bash |
| |
| set -e |
| set -x |
| |
| if [[ "$(uname -s)" == 'Darwin' ]]; then |
| brew update || brew update |
| |
| brew outdated openssl || brew upgrade openssl |
| |
| # install pyenv |
| git clone https://github.com/yyuu/pyenv.git ~/.pyenv |
| PYENV_ROOT="$HOME/.pyenv" |
| PATH="$PYENV_ROOT/bin:$PATH" |
| eval "$(pyenv init -)" |
| |
| case "${TOXENV}" in |
| py27) |
| curl -O https://bootstrap.pypa.io/get-pip.py |
| python get-pip.py --user |
| ;; |
| py33) |
| pyenv install 3.3.6 |
| pyenv global 3.3.6 |
| ;; |
| py34) |
| pyenv install 3.4.4 |
| pyenv global 3.4.4 |
| ;; |
| py35) |
| pyenv install 3.5.1 |
| pyenv global 3.5.1 |
| ;; |
| pypy*) |
| pyenv install pypy-$PYPY_VERSION |
| pyenv global pypy-$PYPY_VERSION |
| ;; |
| pypy3) |
| pyenv install pypy3-2.4.0 |
| pyenv global pypy3-2.4.0 |
| ;; |
| docs) |
| curl -O https://bootstrap.pypa.io/get-pip.py |
| python get-pip.py --user |
| ;; |
| esac |
| pyenv rehash |
| python -m pip install --user virtualenv |
| else |
| # temporary pyenv installation to get latest pypy until the travis |
| # container infra is upgraded |
| if [[ "${TOXENV}" = pypy* ]]; then |
| git clone https://github.com/yyuu/pyenv.git ~/.pyenv |
| PYENV_ROOT="$HOME/.pyenv" |
| PATH="$PYENV_ROOT/bin:$PATH" |
| eval "$(pyenv init -)" |
| pyenv install pypy-$PYPY_VERSION |
| pyenv global pypy-$PYPY_VERSION |
| fi |
| if [[ "${OPENSSL}" == "0.9.8" ]]; then |
| # We use 0.9.8l rather than zh because we have some branches for |
| # handling < 0.9.8m that won't be exercised with a newer OpenSSL. |
| # (RHEL5 is 0.9.8e with patches, but while that's in jenkins we don't |
| # get coverage data from it). |
| OPENSSL_VERSION_NUMBER="0.9.8l" |
| OPENSSL_DIR="ossl-098l" |
| elif [[ "${OPENSSL}" == "1.0.0" ]]; then |
| OPENSSL_VERSION_NUMBER="1.0.0t" |
| OPENSSL_DIR="ossl-100t" |
| fi |
| # download, compile, and install if it's not already present via travis |
| # cache |
| if [ -n "$OPENSSL_DIR" ]; then |
| if [[ ! -f "$HOME/$OPENSSL_DIR/bin/openssl" ]]; then |
| curl -O https://www.openssl.org/source/openssl-$OPENSSL_VERSION_NUMBER.tar.gz |
| tar zxf openssl-$OPENSSL_VERSION_NUMBER.tar.gz |
| cd openssl-$OPENSSL_VERSION_NUMBER |
| ./config shared no-asm no-ssl2 -fPIC --prefix="$HOME/$OPENSSL_DIR" |
| # modify the shlib version to a unique one to make sure the dynamic |
| # linker doesn't load the system one. |
| sed -i "s/^SHLIB_MAJOR=.*/SHLIB_MAJOR=100/" Makefile |
| sed -i "s/^SHLIB_MINOR=.*/SHLIB_MINOR=0.0/" Makefile |
| sed -i "s/^SHLIB_VERSION_NUMBER=.*/SHLIB_VERSION_NUMBER=100.0.0/" Makefile |
| make depend |
| make install |
| fi |
| fi |
| pip install virtualenv |
| fi |
| |
| python -m virtualenv ~/.venv |
| source ~/.venv/bin/activate |
| pip install tox codecov |