#!/bin/bash set -ex if [ "$TRAVIS_OS_NAME" = "osx" ]; then curl -Lo macpython.pkg https://www.python.org/ftp/python/${MACPYTHON}/python-${MACPYTHON}-macosx10.6.pkg sudo installer -pkg macpython.pkg -target / ls /Library/Frameworks/Python.framework/Versions/*/bin/ PYTHON_EXE=/Library/Frameworks/Python.framework/Versions/*/bin/python3 # The pip in older MacPython releases doesn't support a new enough TLS curl https://bootstrap.pypa.io/get-pip.py | sudo $PYTHON_EXE sudo $PYTHON_EXE -m pip install virtualenv $PYTHON_EXE -m virtualenv testenv source testenv/bin/activate fi if [ "$USE_PYPY_NIGHTLY" = "1" ]; then curl -fLo pypy.tar.bz2 http://buildbot.pypy.org/nightly/py3.5/pypy-c-jit-latest-linux64.tar.bz2 if [ ! -s pypy.tar.bz2 ]; then # We know: # - curl succeeded (200 response code; -f means "exit with error if # server returns 4xx or 5xx") # - nonetheless, pypy.tar.bz2 does not exist, or contains no data # This isn't going to work, and the failure is not informative of # anything involving this package. ls -l echo "PyPy3 nightly build failed to download – something is wrong on their end." echo "Skipping testing against the nightly build for right now." exit 0 fi tar xaf pypy.tar.bz2 # something like "pypy-c-jit-89963-748aa3022295-linux64" PYPY_DIR=$(echo pypy-c-jit-*) PYTHON_EXE=$PYPY_DIR/bin/pypy3 ($PYTHON_EXE -m ensurepip \ && $PYTHON_EXE -m pip install virtualenv \ && $PYTHON_EXE -m virtualenv testenv) \ || (echo "pypy nightly is broken; skipping tests"; exit 0) source testenv/bin/activate fi if [ "$USE_PYPY_RELEASE_VERSION" != "" ]; then curl -fLo pypy.tar.bz2 https://bitbucket.org/squeaky/portable-pypy/downloads/pypy3.5-${USE_PYPY_RELEASE_VERSION}-linux_x86_64-portable.tar.bz2 tar xaf pypy.tar.bz2 # something like "pypy3.5-5.7.1-beta-linux_x86_64-portable" PYPY_DIR=$(echo pypy3.5-*) PYTHON_EXE=$PYPY_DIR/bin/pypy3 $PYTHON_EXE -m ensurepip $PYTHON_EXE -m pip install virtualenv $PYTHON_EXE -m virtualenv testenv source testenv/bin/activate fi pip install -U pip setuptools wheel if [ "$CHECK_FORMATTING" = "1" ]; then pip install black if ! black --diff --check setup.py trio_ftplib; then cat <