dist: xenial language: python sudo: false cache: directories: - $HOME/.cache/pip python: - "2.7" - "3.4" - "3.5" - "3.6" - "3.7" - "3.8-dev" - "pypy" - "pypy3" matrix: allow_failures: - python: "3.8-dev" # Explicitly test against our oldest supported cryptography.io, in addition # to whatever the latest default is. include: - python: 2.7 env: "OLDEST_CRYPTO=1.5" - python: 3.7 env: "OLDEST_CRYPTO=1.5" install: # Ensure modern pip/etc to avoid some issues w/ older worker environs - pip install pip==9.0.1 setuptools==36.6.0 # Grab a specific version of Cryptography if desired. Doing this before other # installations ensures we don't have to do any downgrading/overriding. - | if [[ -n "$OLDEST_CRYPTO" ]]; then pip install "cryptography==${OLDEST_CRYPTO}" fi # Self-install for setup.py-driven deps - pip install -e . # Dev (doc/test running) requirements # TODO: use pipenv + whatever contexty-type stuff it has - pip install codecov # For codecov specifically - pip install -r dev-requirements.txt script: # Fast syntax check failures for more rapid feedback to submitters # (Travis-oriented metatask that version checks Python, installs, runs.) - inv travis.blacken # I have this in my git pre-push hook, but contributors probably don't - flake8 # All (including slow) tests, w/ coverage! - inv coverage # Ensure documentation builds, both sites, maxxed nitpicking - inv sites notifications: irc: channels: "irc.freenode.org#paramiko" template: - "%{repository}@%{branch}: %{message} (%{build_url})" on_success: change on_failure: change email: false after_success: - codecov