Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug29729 tuning #25

Merged
merged 7 commits into from Jun 10, 2019
@@ -6,23 +6,46 @@ python: "2.7"

os:
- linux
## We add a single macOS build below
## We also use macOS for some networks

matrix:
# include creates Linux, python 2.7, tor stable builds by default
# 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:
## 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
## Test different network flavours
## We're using the networks from tor master's "make test-network-all"
##
## We need to use macOS to test IPv6 networks, because Travis Linux doesn't
## support IPv6. But macOS 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.
- env: NETWORK_FLAVOUR="bridges-min"
- env: NETWORK_FLAVOUR="hs-v2-min"
- env: NETWORK_FLAVOUR="hs-v3-min"
- env: NETWORK_FLAVOUR="single-onion-v23"
- env: NETWORK_FLAVOUR="bridges+ipv6-min"
os: osx
language: c
python:
env: TOR="stable-release"
## The IPv6 exit test doesn't actually require IPv6, see #30182.
## But we'll keep this test, because it does test IPv6 exit config.
- env: NETWORK_FLAVOUR="ipv6-exit-min"
- env: NETWORK_FLAVOUR="hs-v23-ipv6-md"
os: osx
language: c
python:
- env: NETWORK_FLAVOUR="single-onion-ipv6-md"
os: osx
language: c
python:

## 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
@@ -37,7 +60,7 @@ matrix:
packages:
- shellcheck
- tor
env: TOR="0.2.9-nightly"
env: TOR="0.2.9-nightly" NETWORK_FLAVOUR="basic-min"
- addons:
apt:
sources:
@@ -46,49 +69,44 @@ matrix:
packages:
- shellcheck
- 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
env: TOR="0.3.4-nightly" NETWORK_FLAVOUR="basic-min"
## The current stable release is 0.3.5, so we don't have a separate
## 0.3.5-stable job
- addons:
apt:
sources:
- sourceline: 'deb https://deb.torproject.org/torproject.org tor-nightly-0.3.5.x-xenial main'
- sourceline: 'deb https://deb.torproject.org/torproject.org xenial main'
key_url: 'https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc'
packages:
- shellcheck
- tor
env: TOR="0.3.5-nightly"
## The experimental deb line needs to be updated when 0.4.0 becomes stable
env: TOR="stable-release" NETWORK_FLAVOUR="basic-min"
- addons:
apt:
sources:
- sourceline: 'deb https://deb.torproject.org/torproject.org tor-experimental-0.4.0.x-xenial main'
- 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:
- shellcheck
- tor
env: TOR="0.4.0-nightly"
env: TOR="0.3.5-nightly" NETWORK_FLAVOUR="basic-min"
## 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-nightly-master-xenial main'
- 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:
- shellcheck
- tor
env: TOR="master-nightly"
env: TOR="0.4.0-nightly" NETWORK_FLAVOUR="basic-min"

## 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"
@@ -123,7 +141,7 @@ matrix:

## These builds fail in Travis at the moment
#allow_failures:
# - env: TOR="master-nightly"
# - env: TOR="master-nightly" NETWORK_FLAVOUR="basic-min"

## We don't need sudo. (The "apt:" stanza after this allows us to not need
## sudo; otherwise, we would need it for getting dependencies.)
@@ -138,19 +156,18 @@ dist: xenial
## 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
## The TOR env var should be kept in sync with the Linux tor version below
## We use the basic-min network by default, to reduce load and increase
## reliability
env:
- TOR="stable-release"
- TOR="master-nightly" NETWORK_FLAVOUR="basic-min"

## 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'
- sourceline: 'deb https://deb.torproject.org/torproject.org tor-nightly-master-xenial main'
key_url: 'https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc'
packages:
- shellcheck
@@ -171,9 +188,23 @@ install:
- tor --version

script:
## Basic tests
- tests/shellcheck-tests.sh
- tests/unit-tests.sh
- tools/test-network.sh --allow-failures 1
## Quick smoke test
- tools/test-network.sh --dry-run
## Now, allow one failure for each test (--allow-failures 1)
- export CHUTNEY_ALLOW_FAILURES=1
## Different data directory
- tools/test-network.sh --net-dir "$(mktemp -d)"
## IP address handling
- tools/test-network.sh --ipv4 "127.0.0.1" --ipv6 "[::1]"
## Offline mode
- tools/test-network.sh --offline
## --data fails on python3, and on some tor versions
## We'll fix this issue in #30071
#- FIVE_MEGABYTES=$((5*1024*1024))
#- tools/test-network.sh --data "$FIVE_MEGABYTES" --connections 2 --rounds 2 --hs-multi-client 1 --start-time 130 --bootstrap-time 70 --stop-time 10

after_failure:
## List the contents of net/nodes
@@ -191,9 +222,8 @@ after_failure:
#- 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"
## And repeat the warnings at the end
- tools/test-network.sh --only-warnings

notifications:
irc:
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.