tahoe-lafs/.travis.yml
Chad Whitacre 076c73d22f Turn on py36 at Travis
Drops the old py35 job, per @exarkun:

https://github.com/tahoe-lafs/tahoe-lafs/pull/732#discussion_r449615599

Also bumps Ubuntu at Travis so we can get 3.8 eventually. I first went
to 3.8 before dropping back to 3.6 as our initial target. Trusty on
Travis does include 3.6, but since we want 3.8 "pretty soon," and the OS
bump ended up being tricky (see below), let's go ahead and keep the OS
bump. Xenial (16.04) is the current default at Travis, and it does have
3.8 available:

https://docs.travis-ci.com/user/languages/python/#python-versions

The tricky bug is that different versions of virtualenv have different
seeding algorithms: https://discuss.python.org/t/-/4146). CI puts us
several layers deep in virtualenv-ception and I didn't fully unravel the
whole thing, but starting with a modern virtualenv seems to work around
the issue.
2020-07-13 22:27:59 -04:00

73 lines
2.1 KiB
YAML

sudo: false
language: python
cache: pip
dist: xenial
before_cache:
- rm -f $HOME/.cache/pip/log/debug.log
git:
depth: 1000
env:
global:
- TAHOE_LAFS_HYPOTHESIS_PROFILE=ci
install:
# ~/.local/bin is on $PATH by default, but on OS-X, --user puts it elsewhere
- if [ "${TRAVIS_OS_NAME}" = "osx" ]; then export PATH=$HOME/Library/Python/2.7/bin:$PATH; fi
- if [ "${TRAVIS_OS_NAME}" = "osx" ]; then wget https://bootstrap.pypa.io/get-pip.py && sudo python ./get-pip.py; fi
- pip list
- if [ "${TRAVIS_OS_NAME}" = "osx" ]; then pip install --user --upgrade codecov tox setuptools virtualenv; fi
- if [ "${TRAVIS_OS_NAME}" = "linux" ]; then pip install --upgrade codecov tox setuptools virtualenv; fi
- echo $PATH; which python; which pip; which tox
- python misc/build_helpers/show-tool-versions.py
script:
- |
set -eo pipefail
tox -e ${T}
# To verify that the resultant PyInstaller-generated binary executes
# cleanly (i.e., that it terminates with an exit code of 0 and isn't
# failing due to import/packaging-related errors, etc.).
if [ "${T}" = "pyinstaller" ]; then dist/Tahoe-LAFS/tahoe --version; fi
after_success:
- if [ "${T}" = "coverage" ]; then codecov; fi
notifications:
email: false
irc:
channels: "chat.freenode.net#tahoe-lafs"
on_success: always # for testing
on_failure: always
template:
- "%{repository}#%{build_number} [%{branch}: %{commit} by %{author}] %{message}"
- "Changes: %{compare_url} | Details: %{build_url}"
matrix:
include:
- os: linux
python: '2.7'
env: T=coverage LANG=en_US.UTF-8
- os: linux
python: '2.7'
env: T=codechecks LANG=en_US.UTF-8
- os: linux
python: '2.7'
env: T=pyinstaller LANG=en_US.UTF-8
- os: linux
python: '2.7'
env: T=py27 LANG=C
- os: osx
python: '2.7'
env: T=py27 LANG=en_US.UTF-8
language: generic # "python" is not available on OS-X
- os: osx
python: '2.7'
env: T=pyinstaller LANG=en_US.UTF-8
language: generic # "python" is not available on OS-X
- os: linux
python: '3.6'
env: T=py36
fast_finish: true