stem/.travis.yml
2019-08-17 14:37:10 -07:00

196 lines
7.2 KiB
YAML

language: python
# The default python version on Travis is 2.7
# But we add this line to show the python version in the Travis UI
python: "2.7"
os:
- linux
## We also use macOS for some networks
matrix:
# include creates Linux, python 2.7, tor master builds by default
# we use tor master to catch tor issues before stable releases
# the key(s) in each item override these defaults
include:
## macOS on Travis is tricky:
## - We use the default python version on macOS, which is currently 2.7.
## (But we don't show the version, because Travis might change it
## without us noticing.)
## - We use language: c, because language: python fails on Travis macOS.
## - We get the tor version in the homebrew cache on the macOS image.
## The latest tor version in homebrew is on this page:
## https://formulae.brew.sh/formula/tor
## The Travis version might be slightly older.
- os: osx
language: c
python:
env: TOR="stable-release" TARGET="--target ONLINE"
## Test all supported and available tor versions on Linux
## If the deb.torproject.org repositories are removed, we will fall back to
## Ubuntu security's tor version (currently 0.2.9.14). We might want to
## automatically fail the job if we can't get a newer tor, see #29741.
## The current tor versions in Ubuntu are on this page:
## https://packages.ubuntu.com/search?keywords=tor&searchon=names&exact=1
- addons:
apt:
sources:
- sourceline: 'deb https://deb.torproject.org/torproject.org tor-nightly-0.2.9.x-xenial main'
key_url: 'https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc'
packages:
- tor
env: TOR="0.2.9-nightly" TARGET=""
- addons:
apt:
sources:
- sourceline: 'deb https://deb.torproject.org/torproject.org tor-nightly-0.3.5.x-xenial main'
key_url: 'https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc'
packages:
- tor
env: TOR="0.3.5-nightly" TARGET=""
## The current stable release is 0.4.0
- addons:
apt:
sources:
- sourceline: 'deb https://deb.torproject.org/torproject.org xenial main'
key_url: 'https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc'
packages:
- tor
env: TOR="stable-release" TARGET=""
## We also have 0.4.0 and 0.4.1 nightlies
- addons:
apt:
sources:
- sourceline: 'deb https://deb.torproject.org/torproject.org tor-nightly-0.4.0.x-xenial main'
key_url: 'https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc'
packages:
- tor
env: TOR="0.4.0-nightly" TARGET=""
- addons:
apt:
sources:
- sourceline: 'deb https://deb.torproject.org/torproject.org tor-nightly-0.4.1.x-xenial main'
key_url: 'https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc'
packages:
- tor
env: TOR="0.4.1-nightly" TARGET=""
## Test all supported python releases
## Pre-installed in Travis xenial:
## https://docs.travis-ci.com/user/reference/xenial/#python-support
## End of Life: 1 January 2020
## https://www.python.org/dev/peps/pep-0373/#id2
- python: "2.7"
env: TOR="master-nightly" TARGET="--target ONLINE"
## End of Life: December 2021
## https://www.python.org/dev/peps/pep-0494/#lifespan
- python: "3.6"
env: TOR="master-nightly" TARGET=""
## End of Life: June 2023
## https://www.python.org/dev/peps/pep-0537/#lifespan
- python: "3.7"
env: TOR="master-nightly" TARGET=""
## Stable: 20 October 2019
## (Switch from 3.8-dev to 3.8, and check for 3.9-dev)
## End of Life: October 2024
## https://www.python.org/dev/peps/pep-0569/#lifespan
- python: "3.8-dev"
env: TOR="master-nightly" TARGET=""
- python: "nightly"
env: TOR="master-nightly" TARGET="--target ONLINE"
# PyPy versions
## End of Life: "forever"
## http://doc.pypy.org/en/latest/faq.html#how-long-will-pypy-support-python2
## But stem may decide not to support python 2 after 1 Jan 2020.
## Travis Xenial does not support pypy2.7
#- python: "pypy2.7"
# env: TOR="master-nightly" TARGET=""
## PyPy does not have documented end of life dates
- python: "pypy3.5"
env: TOR="master-nightly" TARGET=""
## PyPy 3.6 is currently in alpha
## Travis Xenial does not support pypy3.6-dev yet?
#- python: "pypy3.6-dev"
# env: TOR="master-nightly" TARGET=""
## Uncomment to allow the build to report success (with non-required
## sub-builds continuing to run) if all required sub-builds have
## succeeded. This is somewhat buggy currently: it can cause
## duplicate notifications and prematurely report success if a
## single sub-build has succeeded. See
## https://github.com/travis-ci/travis-ci/issues/1696
#fast_finish: true
## These builds fail in Travis at the moment
#allow_failures:
# - env: TOR="master-nightly" TARGET="--target ONLINE"
## We don't need sudo. (The "apt:" stanza after this allows us to not need
## sudo; otherwise, we would need it for getting dependencies.)
sudo: false
## (Linux only) Use the Ubuntu Xenial Linux Image
## deb.torproject.org doesn't support Trusty any more
dist: xenial
## (OSX only) Use the default OSX image
## See https://docs.travis-ci.com/user/reference/osx#os-x-version
## Default is Xcode 9.4 on macOS 10.13 as of August 2018
#osx_image: xcode9.4
## The TOR env var should be kept in sync with the Linux tor version below
## This line doesn't actually create any Travis jobs
env:
- TOR="master-nightly" TARGET="--target ONLINE"
## Download our dependencies
addons:
## (Linux only)
apt:
sources:
- sourceline: 'deb https://deb.torproject.org/torproject.org tor-nightly-master-xenial main'
key_url: 'https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc'
packages:
- tor
## (macOS only)
homebrew:
packages:
- tor
# See ticket #30928 for more information. This key should be removed at
# some point to speed up builds.
update: true
install:
## We also need to install stem's dependencies
- pip install -U pip
- pip install -r requirements.txt
## List installed package versions
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then dpkg-query --show; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew list --versions; fi
- pip list
- python --version
- tor --version
script:
## Run stem's tests
- ./run_tests.py --unit
- ./run_tests.py --integ $TARGET
after_failure:
## Show the integ tor log
- cat "$STEM_SOURCE_DIR"/test/data/tor_log || echo "cat failed"
notifications:
irc:
channels:
- "irc.oftc.net#tor-ci"
template:
- "%{repository} %{branch} %{commit} - %{author}: %{commit_subject}"
- "Build #%{build_number} %{result}. Details: %{build_url}"
on_success: change
on_failure: change
email:
on_success: never
on_failure: change