language: python # Version used for jobs that don't override it (e.g. the one-off jobs): python: "3.6" sudo: false env: global: - VENV_ROOT="$HOME/venv" before_install: - | echo "TRAVIS_PULL_REQUEST_SHA: $TRAVIS_PULL_REQUEST_SHA" echo "TRAVIS_COMMIT: $TRAVIS_COMMIT" git --no-pager log -n2 echo # Travis does a shallow (--depth=50) clone by default. # Clone the full history as requested by setuptools_scm. git fetch --unshallow echo # https://github.com/python-trio/trio/issues/487#issuecomment-377931587 echo Installing latest pip... curl https://bootstrap.pypa.io/get-pip.py | python install: # Install our test dependencies. - if [[ -n $COVERAGE ]]; then EXTRAS="test,coverage"; else EXTRAS="test"; fi - travis_retry pip install .[$EXTRAS] script: # Run our test suite. - if [[ -n $COVERAGE ]]; then export PYTEST_ADDOPTS="--cov=bidict --cov-config=.coveragerc"; fi - python setup.py test after_script: - | if [[ -n $COVERAGE ]]; then echo "Installing codecov..." travis_retry pip install codecov || exit 1 echo echo "Uploading coverage report..." codecov || exit 1 fi matrix: allow_failures: - env: ALLOW_FAIL=1 include: # Each job performs a single task, and sets a "TASK" var so it's evident in the build matrix. # Run the test suite with various Python versions. # Only run these tests for commits to master to save time waiting for Travis. # Also don't bother testing Python 3.4; if we work on 3.5+, we should work on 3.4 too. ## Linux ### Enable coverage for the latest stable CPython 2 and 3 releases and PyPy on Linux. #### Latest stable CPython 2. Enable coverage. - python: "2.7" env: TASK=test COVERAGE=1 if: branch = master #### Latest stable CPython 3. Enable coverage. - python: "3.6" env: TASK=test COVERAGE=1 if: branch = master #### Test other CPython versions. No need for coverage. ##### Previous stable CPython 3 version. - python: "3.5" env: TASK=test if: branch = master #### Next (in-development) CPython 3 version. - python: 3.7-dev env: TASK=test ALLOW_FAIL=1 if: branch = master #### Test latest stable PyPy 3. Enable coverage. - python: pypy3 env: TASK=test COVERAGE=1 if: branch = master #### Test latest stable PyPy 2. No need for coverage. - python: pypy env: TASK=test if: branch = master ## macOS ### Commented out pending https://github.com/travis-ci/travis-ci/issues/2312 ####- python: "2.7" #### env: TASK=test #### if: branch = master #### os: osx #### osx_image: xcode9.2 # One-off jobs. Override "install", "before_install", and "script" to do each of these instead. - env: TASK=pydocstyle before_install: skip install: travis_retry pip install pydocstyle script: pydocstyle bidict - env: TASK=build-docs before_install: skip install: travis_retry pip install Sphinx script: - ./build-docs.sh - cd docs - travis_retry make linkcheck - env: TASK=flake8 before_install: skip install: travis_retry pip install flake8 script: flake8 bidict tests/*.py - env: TASK=pylint before_install: travis_retry pip install .[test] install: travis_retry pip install pylint script: pylint bidict tests/*.py setup.py - env: TASK=test-with-optimization-flag # make sure there are no relied-on side effects in assert statements before_install: skip install: skip script: python -O -m doctest -o IGNORE_EXCEPTION_DETAIL -o ELLIPSIS tests/*.txt - stage: deploy-if-tag env: TASK=deploy-if-tag before_install: skip install: skip script: skip deploy: - provider: pypi user: jab password: secure: B9LLgXkTbtjeC/IbH4wh9PEBzvKEAuYo3EBNW5f1xuLqVqtsysIyxJa5ar/FQ4qwUCBwZPFAXFurN3lLzRhb2Tc04YQ0GYVv6f8lkzwrjoWau4iB9Qt/nnvdRa7KryEJvtenHCAnwoEUaADCjkZjwo6fIA0hEOLB6/AYfhfgXYA= on: tags: true before_cache: - rm -rf $HOME/.cache/pip/log cache: directories: - $HOME/.cache/pip - $HOME/.hypothesis notifications: webhooks: urls: - https://webhooks.gitter.im/e/bf64fb45a633c0935b9b email: recipients: jab@math.brown.edu