language: python sudo: false cache: directories: - $HOME/.cache/pip python: - "2.6" - "2.7" - "3.3" - "3.4" - "3.5" - "3.6" - "3.7-dev" - "pypy-5.6.0" matrix: allow_failures: - python: "3.7-dev" # Pull in a few specific combos of older cryptography.io as needed. # NOTE: this should only exist in the 2.0-2.2 branches, as 2.3+ requires # crypto 1.5+. include: - python: 2.7 env: "CRYPTO=1.1" - python: 2.7 env: "CRYPTO=1.5" - python: 3.6 env: "CRYPTO=1.1" - python: 3.6 env: "CRYPTO=1.5" install: # Ensure modern pip/etc on Python 3.3 workers (not sure WTF, but, eh) - pip install pip==9.0.1 setuptools==36.6.0 # Grab a specific version of Cryptography if desired. (The 'vanilla' cells # should all end up with latest public Cryptography version.) # Doing this before other installations ensures we don't have to do any # downgrading/overriding. - "if [[ $CRYPTO == '1.1' ]]; then pip install 'cryptography<1.2'; fi" - "if [[ $CRYPTO == '1.5' ]]; then pip install 'cryptography<1.6'; fi" # 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 # Self-install for setup.py-driven deps. Comes after dev-requirements so that # is able to 'pre-pin' certain libs to lower versions (eg for py2.6 support # on Paramiko <2.4). - pip install -e . script: | # NOTE: the below hilarity should only exist in 2.0-2.3, 2.4+ should've gone # back to vague normalcy! if [[ $TRAVIS_PYTHON_VERSION == '2.6' || $TRAVIS_PYTHON_VERSION == '3.3' ]]; then flake8 coverage run --source=paramiko -m pytest --verbose --color=yes else inv travis.blacken flake8 inv coverage inv sites fi notifications: irc: channels: "irc.freenode.org#paramiko" template: - "%{repository}@%{branch}: %{message} (%{build_url})" on_success: change on_failure: change email: false after_success: - codecov