[tor-commits] [stem/master] Travis: rewrite stem's CI based on the latest chutney CI

atagar at torproject.org atagar at torproject.org
Fri May 24 19:23:15 UTC 2019


commit 3f723b502f68eedd02c6c01f569a45320d72cb9e
Author: teor <teor at torproject.org>
Date:   Fri May 24 15:01:49 2019 +1000

    Travis: rewrite stem's CI based on the latest chutney CI
    
    Closes ticket 28170.
---
 .travis.yml | 200 ++++++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 file changed, 175 insertions(+), 25 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 20b5b553..a3d0d4c3 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,38 +1,188 @@
-# Travis CI configuration file
-# http://about.travis-ci.org/docs/
-
 language: python
 
-python:
-    - "2.7"
-    - "3.5"
-    - "3.6"
+# 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:
+    ## Test macOS
+    ## Tweak the language to work around a Travis macOS python install bug
+    - 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
+    ## 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:
+            - shellcheck
+            - 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:
+            - shellcheck
+            - tor
+      env: TOR="0.3.4-nightly"
+    ## 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 xenial main'
+              key_url: 'https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc'
+          packages:
+            - shellcheck
+            - tor
+      env: TOR="stable-release"
+    - 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:
+            - shellcheck
+            - 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:
+            - shellcheck
+            - tor
+      env: TOR="0.4.0-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"
+    ## 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 stem may 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
+
+## 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:
-  - TEST_PARAM="--unit"
-  - TEST_PARAM="--integ"
+  - TOR="master-nightly"
 
-before_install:
-  - sudo apt-get update -qq
-  - sudo apt-get install -qq tor
+## 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:
+      - shellcheck
+      - tor
+  ## (macOS only)
+  homebrew:
+    packages:
+      - shellcheck
+      - tor
 
-# Dependencies installation commands
 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
+  - shellcheck --version
+  - tor --version
 
-# Tests running commands
 script:
-  - ./run_tests.py $TEST_PARAM 
-
-notifications:
-  email: false
-
-after_script:
-  # List installed packages along with their versions.
-  - "pip list"
+  ## Check the only shell script in the repository
+  - shellcheck docs/republish
+  ## Run stem's tests
+  - ./run_tests.py --unit
+  - ./run_tests.py --integ
 
-sudo: false
+after_failure:
+  ## Show the integ tor log
+  - cat "$STEM_SOURCE_DIR"/test/data/tor_log || echo "cat failed"
 
-git:
-  depth: 300
+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





More information about the tor-commits mailing list