diff --git a/.travis.yml b/.travis.yml index 83f0c748..ea30f712 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,57 +4,59 @@ env: global: - PYENV_ROOT="$HOME/.pyenv" - PYENV="$PYENV_ROOT/bin/pyenv" + # Default Python version. Used for jobs that don't specify one. + - PYVER=3.6.3 matrix: include: - # One-off jobs. Override "script" to do something other than run pytest. - # Use latest CPython 3 for these. Set a "TASK" var so the task is evident in the build matrix. + # Each job performs a single task, and sets a "TASK" var so it's evident in the build matrix. + + # One-off jobs. Override "script" to do something other than run the default (pytest). - script: ./build-docs.sh linkcheck - env: - - TASK=build-docs - - PYENV_PYTHON_VER=3.6.3 + env: TASK=build-docs - script: pylint bidict tests/*.py - env: - - TASK=pylint - - PYENV_PYTHON_VER=3.6.3 + env: TASK=pylint - script: flake8 bidict tests/*.py - env: - - TASK=flake8 - - PYENV_PYTHON_VER=3.6.3 + env: TASK=flake8 - script: pydocstyle bidict - env: - - TASK=pydocstyle - - PYENV_PYTHON_VER=3.6.3 - - # Test all supported Python versions on macOS... - - os: osx - env: PYENV_PYTHON_VER=2.7.14 - - os: osx - env: PYENV_PYTHON_VER=3.4.7 - - os: osx - env: PYENV_PYTHON_VER=3.5.3 - - os: osx - env: PYENV_PYTHON_VER=3.6.3 - - os: osx - env: PYENV_PYTHON_VER=3.7-dev - - os: osx - env: PYENV_PYTHON_VER=pypy2.7-5.9.0 - # not yet working on macOS? works on linux: - #- os: osx - #- env: PYENV_PYTHON_VER=pypy3.5-5.9.0 + env: TASK=pydocstyle - # ...and Linux. - - env: PYENV_PYTHON_VER=2.7.14 - - env: PYENV_PYTHON_VER=3.4.7 - - env: PYENV_PYTHON_VER=3.5.3 - # Enable coverage just for the latest stable Python 3 version on Linux. - - env: PYENV_PYTHON_VER=3.6.3 + # Test with all supported Python versions on Linux. + - env: TASK=pytest PYVER=2.7.14 + - env: TASK=pytest PYVER=3.4.7 + - env: TASK=pytest PYVER=3.5.3 + # Enable coverage for the latest stable Python 3 release on Linux. + - env: TASK=pytest PYVER=3.6.3 COVERAGE=1 script: - py.test --cov=bidict --cov-config=.coveragerc - travis_retry pip install coveralls && coveralls - - env: PYENV_PYTHON_VER=3.7-dev - - env: PYENV_PYTHON_VER=pypy2.7-5.9.0 - - env: PYENV_PYTHON_VER=pypy3.5-5.9.0 + - env: TASK=pytest PYVER=3.7-dev + - env: TASK=pytest PYVER=pypy2.7-5.9.0 + - env: TASK=pytest PYVER=pypy3.5-5.9.0 + + # Test with all supported Python versions on macOS. + # Only do this for master since this is so slow on Travis. + - env: TASK=pytest PYVER=2.7.14 + os: osx + if: branch = master + - env: TASK=pytest PYVER=3.4.7 + os: osx + if: branch = master + - env: TASK=pytest PYVER=3.5.3 + os: osx + if: branch = master + - env: TASK=pytest PYVER=3.6.3 + os: osx + if: branch = master + - env: TASK=pytest PYVER=3.7-dev + os: osx + if: branch = master + - env: TASK=pytest PYVER=pypy2.7-5.9.0 + os: osx + if: branch = master + - env: TASK=pytest PYVER=pypy3.5-5.9.0 + os: osx + if: branch = master before_install: - | @@ -63,20 +65,19 @@ before_install: echo "TRAVIS_COMMIT: $TRAVIS_COMMIT" install: - # based on https://github.com/frol/flask-restplus-server-example/blob/018f48e5/.travis.yml - | set -e - if [[ -n "$PYENV_PYTHON_VER" ]]; then + if [[ -n "$PYVER" ]]; then if [[ -f "$PYENV" ]]; then pushd "$PYENV_ROOT" && git pull && popd else rm -rf "$PYENV_ROOT" && git clone --depth 1 https://github.com/yyuu/pyenv.git "$PYENV_ROOT" fi - "$PYENV" install --skip-existing "$PYENV_PYTHON_VER" - export PYTHON="$PYENV_ROOT/versions/$PYENV_PYTHON_VER/bin/python" + "$PYENV" install --skip-existing "$PYVER" + export PYTHON="$PYENV_ROOT/versions/$PYVER/bin/python" $PYTHON -m ensurepip --upgrade $PYTHON -m pip install --upgrade virtualenv - export VENV="$HOME/virtualenvs/$PYENV_PYTHON_VER" + export VENV="$HOME/virtualenvs/$PYVER" $PYTHON -m virtualenv --python="$PYTHON" "$VENV" source "$VENV/bin/activate" fi