94 lines
3.3 KiB
Bash
94 lines
3.3 KiB
Bash
#!/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 <<EOF
|
||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||
Formatting problems were found (listed above). To fix them, run
|
||
pip install black
|
||
black setup.py trio_ftplib
|
||
in your local checkout.
|
||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||
EOF
|
||
exit 1
|
||
fi
|
||
exit 0
|
||
fi
|
||
|
||
python setup.py sdist --formats=zip
|
||
pip install dist/*.zip
|
||
|
||
if [ "$CHECK_DOCS" = "1" ]; then
|
||
pip install -Ur ci/rtd-requirements.txt
|
||
cd docs
|
||
# -n (nit-picky): warn on missing references
|
||
# -W: turn warnings into errors
|
||
sphinx-build -nW -b html source build
|
||
else
|
||
# Actual tests
|
||
pip install -Ur test-requirements.txt
|
||
|
||
mkdir empty
|
||
cd empty
|
||
|
||
pytest -W error -ra -v --pyargs trio_ftplib --cov=trio_ftplib --cov-config=../.coveragerc --verbose
|
||
|
||
bash <(curl -s https://codecov.io/bash)
|
||
fi
|