[tor-commits] [tor/master] Travis: Sort jobs in order of speed

teor at torproject.org teor at torproject.org
Mon Feb 17 03:50:08 UTC 2020


commit 25ecdf1409c9d1d33e546cff1e617e14d84fae03
Author: teor <teor at torproject.org>
Date:   Thu Feb 13 13:37:02 2020 +1000

    Travis: Sort jobs in order of speed
    
    Putting the slowest jobs first takes full advantage of Travis
    concurrency.
    
    Closes 33194.
---
 .travis.yml         | 56 +++++++++++++++++++++++++++++++++--------------------
 changes/ticket33194 |  2 ++
 2 files changed, 37 insertions(+), 21 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 29533dab0..e8533c08a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -43,30 +43,48 @@ env:
 matrix:
   ## include creates builds with gcc, linux, unless we override those defaults
   include:
-    ## We run basic tests on macOS
+    ## We run chutney on macOS, because macOS Travis has IPv6
+    ## But we only run the IPv6 chutney tests, to speed up the job
+    - env: CHUTNEY="yes" CHUTNEY_ALLOW_FAILURES="2" SKIP_MAKE_CHECK="yes" CHUTNEY_MAKE_TARGET="test-network-ipv6"
+      os: osx
+
+    ## We also run basic tests on macOS
     - compiler: clang
       os: osx
       ## Turn off some newer features, turn on clang's -Wtypedef-redefinition
       env: C_DIALECT_OPTIONS="-std=gnu99"
-    ## We check NSS
-    ## Use -std=gnu99 to turn off some newer features, and maybe turn on some
-    ## extra gcc warnings?
-    - env: NSS_OPTIONS="--enable-nss" C_DIALECT_OPTIONS="-std=gnu99"
+
     ## We run chutney on Linux, because it's faster than chutney on macOS
     ## Chutney is a fast job, clang is slower on Linux, so we do Chutney clang
     - env: CHUTNEY="yes" CHUTNEY_ALLOW_FAILURES="2" SKIP_MAKE_CHECK="yes"
       compiler: clang
+
     ## We check asciidoc with distcheck, to make sure we remove doc products
     - env: DISTCHECK="yes" ASCIIDOC_OPTIONS="" SKIP_MAKE_CHECK="yes"
-    ## We include a single coverage build with the best options for coverage
-    - env: COVERAGE_OPTIONS="--enable-coverage" HARDENING_OPTIONS="" TOR_TEST_RNG_SEED="636f766572616765"
-    ## We run rust on Linux, because it's faster than rust on macOS
-    ## We check rust offline
-    - env: RUST_OPTIONS="--enable-rust" TOR_RUST_DEPENDENCIES=true
+
     ## We check disable module relay
     - env: MODULES_OPTIONS="--disable-module-relay"
     ## We check disable module dirauth
     - env: MODULES_OPTIONS="--disable-module-dirauth"
+
+    ## We run rust on Linux, because it's faster than rust on macOS
+    ## We check rust offline
+    - env: RUST_OPTIONS="--enable-rust" TOR_RUST_DEPENDENCIES=true
+
+    ## We check NSS
+    ## Use -std=gnu99 to turn off some newer features, and maybe turn on some
+    ## extra gcc warnings?
+    - env: NSS_OPTIONS="--enable-nss" C_DIALECT_OPTIONS="-std=gnu99"
+
+    ## We include a single coverage build with the best options for coverage
+    - env: COVERAGE_OPTIONS="--enable-coverage" HARDENING_OPTIONS="" TOR_TEST_RNG_SEED="636f766572616765"
+
+    ## We clone our stem repo and run `make test-stem`
+    - env: TEST_STEM="yes" SKIP_MAKE_CHECK="yes"
+
+    ## We run `make doxygen` without `make check`.
+    - env: SKIP_MAKE_CHECK="yes" DOXYGEN="yes"
+
     ## macOS builds are very slow, and we have a limited number of
     ## concurrent macOS jobs. We're not actively developing Rust, so it is
     ## the lowest priority.
@@ -74,14 +92,6 @@ matrix:
     #- env: RUST_VERSION="nightly" RUST_OPTIONS="--enable-rust --enable-cargo-online-mode"
     #  compiler: clang
     #  os: osx
-    ## We run chutney on macOS, because macOS Travis has IPv6
-    ## But we only run the IPv6 chutney tests, to speed up the job
-    - env: CHUTNEY="yes" CHUTNEY_ALLOW_FAILURES="2" SKIP_MAKE_CHECK="yes" CHUTNEY_MAKE_TARGET="test-network-ipv6"
-      os: osx
-    ## We clone our stem repo and run `make test-stem`
-    - env: TEST_STEM="yes" SKIP_MAKE_CHECK="yes"
-    ## We run `make doxygen` without `make check`.
-    - env: SKIP_MAKE_CHECK="yes" DOXYGEN="yes"
 
   ## Allow the build to report success (with non-required sub-builds
   ## continuing to run) if all required sub-builds have succeeded.
@@ -93,9 +103,13 @@ matrix:
     ## macOS rust and chutney are very slow, so we let the build finish before
     ## they are done.  We'd like to fast finish, but still eventually show
     ## any failures in the build status. But Travis doesn't have that ability.
-    - env: RUST_VERSION="nightly" RUST_OPTIONS="--enable-rust --enable-cargo-online-mode"
-      compiler: clang
-      os: osx
+
+    ## Since this job is disabled, there's not much point having an exception
+    ## for it
+    #- env: RUST_VERSION="nightly" RUST_OPTIONS="--enable-rust --enable-cargo-online-mode"
+    #  compiler: clang
+    #  os: osx
+
     ## Since we're actively developing IPv6, we want to require the IPv6
     ## chutney tests
     #- env: CHUTNEY="yes" CHUTNEY_ALLOW_FAILURES="2" SKIP_MAKE_CHECK="yes" CHUTNEY_MAKE_TARGET="test-network-ipv6"
diff --git a/changes/ticket33194 b/changes/ticket33194
index fd9efda51..b87e55348 100644
--- a/changes/ticket33194
+++ b/changes/ticket33194
@@ -1,2 +1,4 @@
   o Testing:
     - Remove a redundant distcheck job. Closes ticket 33194.
+    - Sort the Travis jobs in order of speed. Putting the slowest jobs first
+      takes full advantage of Travis job concurrency. Closes ticket 33194.





More information about the tor-commits mailing list