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 add a single macOS build below matrix: # include creates Linux, python 2.7, tor stable builds by default # the key(s) in each item override these defaults include: ## Test macOS with its default python version, which is currently 2.7. ## (But we don't show the version, because Travis might change it without ## us noticing.) ## Use language: c to work around an issue with language: python on macOS. ## We get the tor version in the homebrew cache on the macOS image ## The current tor version in homebrew is on this page: ## https://formulae.brew.sh/formula/tor - os: osx language: c python: env: TOR="stable-release" ## 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" - addons: apt: sources: - sourceline: 'deb https://deb.torproject.org/torproject.org tor-nightly-0.3.4.x-xenial main' key_url: 'https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc' packages: - tor env: TOR="0.3.4-nightly" ## The current stable release is listed at the end of the file, because ## it is the default for other build variants - 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" ## The experimental deb line needs to be updated when 0.4.0 becomes stable - addons: apt: sources: - sourceline: 'deb https://deb.torproject.org/torproject.org tor-experimental-0.4.0.x-xenial main' key_url: 'https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc' packages: - tor env: TOR="0.4.0-nightly" - addons: 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 env: TOR="master-nightly" ## 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" ## Final Release: 17 March 2019 ## https://www.python.org/dev/peps/pep-0429/#release-schedule - python: "3.4" ## Final Release: 17 March 2019 ## https://www.python.org/dev/peps/pep-0478/#id4 - python: "3.5" ## End of Life: December 2021 ## https://www.python.org/dev/peps/pep-0494/#lifespan - python: "3.6" ## End of Life: June 2023 ## https://www.python.org/dev/peps/pep-0537/#lifespan - python: "3.7" ## Stable: 20 October 2019 ## (Switch from 3.8-dev to 3.8, and check for 3.9-dev) ## End of Life: October2024 ## https://www.python.org/dev/peps/pep-0569/#lifespan - python: "3.8-dev" - python: "nightly" # PyPy versions ## End of Life: "forever" ## http://doc.pypy.org/en/latest/faq.html#how-long-will-pypy-support-python2 ## But chutney can decide not to support python 2 after 1 Jan 2020. ## Travis Xenial does not support pypy2.7 #- python: "pypy2.7" ## PyPy does not have documented end of life dates - python: "pypy3.5" ## PyPy 3.6 is currently in alpha ## Travis Xenial does not support pypy3.6-dev yet? #- python: "pypy3.6-dev" ## 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" ## 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 ## This env var isn't used by the build, but it's useful for debugging ## It should be kept in sync with the Linux tor version below env: - TOR="stable-release" ## Download our dependencies addons: ## (Linux only) apt: sources: ## Xenial has Tor 0.2.7, so we need a newer version of Tor from the ## torproject repositories, and the torproject key from deb.tpo - sourceline: 'deb https://deb.torproject.org/torproject.org xenial main' key_url: 'https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc' packages: - tor ## (macOS only) homebrew: packages: - tor install: ## Chutney has no dependencies, apart from tor ## List installed package versions - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then dpkg-query --show; fi - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew list --versions; fi - python --version - tor --version script: - tools/test-network.sh --allow-failures 1 after_failure: ## List the contents of net/nodes - ls -lR net/nodes/ ## Dump the important directory documents #- cat net/nodes/000a*/cached-certs - cat net/nodes/000a*/cached-consensus - cat net/nodes/000a*/cached-descriptors* #- cat net/nodes/000a*/cached-extrainfo* - cat net/nodes/000a*/cached-microdesc-consensus - cat net/nodes/000a*/cached-microdescs* #- cat net/nodes/000a*/key-pinning-journal #- cat net/nodes/000a*/router-stability #- cat net/nodes/00*a*/sr-state #- cat net/nodes/00*a*/state - for f in net/nodes/00*a*/v3-status-votes ; do echo "$f"; cat "$f"; done - for f in net/nodes/00*a*/unparseable-descs/* ; do echo "$f"; cat "$f"; done ## Re-run chutney in debug mode ## TODO: improve debug mode - tools/test-network.sh --debug && echo "chutney debug run succeeded" 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