mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-09-21 03:18:57 +03:00
52b1f46b12
Pillow now requires the olefile Python package through setup.py. This removes Pillow's maintenance of this library by instead relying on and reusing the upstream version. No longer need to regularly update the vendored package and docs. olefile bug fixes and features can go directly upstream. During travis tests, now installs Pillow package before tests; this will also install all dependencies (currently, only olefile).
137 lines
4.7 KiB
YAML
137 lines
4.7 KiB
YAML
language: python
|
|
|
|
notifications:
|
|
irc: "chat.freenode.net#pil"
|
|
|
|
# Run slow PyPy* first, to give them a headstart and reduce waiting time.
|
|
# Run latest 3.x and 2.x next, to get quick compatibility results.
|
|
# Then run the remainder.
|
|
python:
|
|
- "pypy"
|
|
- "pypy3"
|
|
- 3.5
|
|
- 2.7
|
|
- "2.7_with_system_site_packages" # For PyQt4
|
|
- 3.3
|
|
- 3.4
|
|
- nightly
|
|
|
|
install:
|
|
- "travis_retry sudo apt-get update"
|
|
- "travis_retry sudo apt-get -qq install libfreetype6-dev liblcms2-dev python-qt4 ghostscript libffi-dev libjpeg-turbo-progs cmake imagemagick"
|
|
- "travis_retry pip install cffi"
|
|
- "travis_retry pip install nose"
|
|
- "travis_retry pip install check-manifest"
|
|
# Pyroma tests sometimes hang on PyPy; skip
|
|
- if [ $TRAVIS_PYTHON_VERSION != "pypy" ]; then travis_retry pip install pyroma; fi
|
|
|
|
- "travis_retry pip install coverage"
|
|
|
|
# docs only on python 2.7
|
|
- if [ "$TRAVIS_PYTHON_VERSION" == "2.7" ]; then travis_retry pip install -r requirements.txt ; fi
|
|
|
|
# clean checkout for manifest
|
|
- mkdir /tmp/check-manifest && cp -a . /tmp/check-manifest
|
|
|
|
# webp
|
|
- pushd depends && ./install_webp.sh && popd
|
|
|
|
# openjpeg
|
|
- pushd depends && ./install_openjpeg.sh && popd
|
|
|
|
# libimagequant
|
|
- pushd depends && ./install_imagequant.sh && popd
|
|
|
|
- travis_retry pip install -e .
|
|
|
|
before_script:
|
|
# Qt needs a display for some of the tests, and it's only run on the system site packages install
|
|
- "export DISPLAY=:99.0"
|
|
- "sh -e /etc/init.d/xvfb start"
|
|
|
|
script:
|
|
- coverage erase
|
|
- python setup.py clean
|
|
- CFLAGS="-coverage" python setup.py build_ext --inplace
|
|
|
|
- coverage run --append --include=PIL/* selftest.py
|
|
- coverage run --append --include=PIL/* -m nose -vx Tests/test_*.py
|
|
- pushd /tmp/check-manifest && check-manifest --ignore ".coveragerc,.editorconfig,*.yml,*.yaml,tox.ini" && popd
|
|
|
|
# Docs
|
|
- if [ "$TRAVIS_PYTHON_VERSION" == "2.7" ]; then make install && make doccheck; fi
|
|
|
|
after_success:
|
|
# gather the coverage data
|
|
- travis_retry sudo apt-get -qq install lcov
|
|
- lcov --capture --directory . -b . --output-file coverage.info
|
|
# filter to remove system headers
|
|
- lcov --remove coverage.info '/usr/*' -o coverage.filtered.info
|
|
# convert to json
|
|
- travis_retry gem install coveralls-lcov
|
|
- coveralls-lcov -v -n coverage.filtered.info > coverage.c.json
|
|
|
|
- coverage report
|
|
- travis_retry pip install coveralls-merge
|
|
- coveralls-merge coverage.c.json
|
|
|
|
- travis_retry pip install pep8 pyflakes
|
|
- pep8 --statistics --count PIL/*.py
|
|
- pep8 --statistics --count Tests/*.py
|
|
- pyflakes *.py | tee >(wc -l)
|
|
- pyflakes PIL/*.py | tee >(wc -l)
|
|
- pyflakes Tests/*.py | tee >(wc -l)
|
|
|
|
# Coverage and quality reports on just the latest diff.
|
|
# (Installation is very slow on Py3, so just do it for Py2.)
|
|
- if [ ${TRAVIS_PYTHON_VERSION:0:1} == "2" ]; then depends/diffcover-install.sh; fi
|
|
- if [ ${TRAVIS_PYTHON_VERSION:0:1} == "2" ]; then depends/diffcover-run.sh; fi
|
|
|
|
# after_all
|
|
- |
|
|
if [ "$TRAVIS_REPO_SLUG" = "python-pillow/Pillow" ] && [ "$TRAVIS_BRANCH" = "master" ] && [ "$TRAVIS_PULL_REQUEST" = "false" ]; then
|
|
curl -Lo travis_after_all.py https://raw.github.com/dmakhno/travis_after_all/master/travis_after_all.py
|
|
python travis_after_all.py
|
|
export $(cat .to_export_back)
|
|
if [ "$BUILD_LEADER" = "YES" ]; then
|
|
if [ "$BUILD_AGGREGATE_STATUS" = "others_succeeded" ]; then
|
|
echo "All jobs succeded! Triggering macOS build..."
|
|
# Trigger a macOS build at the pillow-wheels repo
|
|
./build_children.sh
|
|
else
|
|
echo "Some jobs failed"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
after_failure:
|
|
- |
|
|
if [ "$TRAVIS_REPO_SLUG" = "python-pillow/Pillow" ] && [ "$TRAVIS_BRANCH" = "master" ] && [ "$TRAVIS_PULL_REQUEST" = "false" ]; then
|
|
curl -Lo travis_after_all.py https://raw.github.com/dmakhno/travis_after_all/master/travis_after_all.py
|
|
python travis_after_all.py
|
|
export $(cat .to_export_back)
|
|
if [ "$BUILD_LEADER" = "YES" ]; then
|
|
if [ "$BUILD_AGGREGATE_STATUS" = "others_failed" ]; then
|
|
echo "All jobs failed"
|
|
else
|
|
echo "Some jobs failed"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
after_script:
|
|
- |
|
|
if [ "$TRAVIS_REPO_SLUG" = "python-pillow/Pillow" ] && [ "$TRAVIS_BRANCH" = "master" ] && [ "$TRAVIS_PULL_REQUEST" = "false" ]; then
|
|
echo leader=$BUILD_LEADER status=$BUILD_AGGREGATE_STATUS
|
|
fi
|
|
|
|
matrix:
|
|
fast_finish: true
|
|
allow_failures:
|
|
- python: nightly
|
|
|
|
env:
|
|
global:
|
|
# travis encrypt AUTH_TOKEN=
|
|
secure: "Vzm7aG1Qv0SDQcqiPzZMedNLn5ZmpL7IzF0DYnqcD+/l+zmKU22SnJBcX0uVXumo+r7eZfpsShpqfcdsZvMlvmQnwz+Y6AGKQru9tCKZbTMnuRjWKKXekC+tr8Xt9CKvRVtte5PyXW31paxUI3/e+fQGBwoFjEEC+6EpEOjeRfE="
|