|
@@ -1,8 +1,10 @@
|
|
|
language: c
|
|
|
|
|
|
-compiler:
|
|
|
- - gcc
|
|
|
- - clang
|
|
|
+## Comment out the compiler list for now to allow an explicit build
|
|
|
+## matrix.
|
|
|
+# compiler:
|
|
|
+# - gcc
|
|
|
+# - clang
|
|
|
|
|
|
notifications:
|
|
|
irc:
|
|
@@ -28,6 +30,10 @@ dist: trusty
|
|
|
|
|
|
## We don't need sudo. (The "apt:" stanza after this allows us to not need sudo;
|
|
|
## otherwise, we would need it for getting dependencies.)
|
|
|
+##
|
|
|
+## We override this in the explicit build matrix to work around a
|
|
|
+## Travis CI environment regression
|
|
|
+## https://github.com/travis-ci/travis-ci/issues/9033
|
|
|
sudo: false
|
|
|
|
|
|
## (Linux only) Download our dependencies
|
|
@@ -55,9 +61,13 @@ env:
|
|
|
## The Travis CI environment allows us two cores, so let's use both.
|
|
|
- MAKEFLAGS="-j 2"
|
|
|
matrix:
|
|
|
+ ## Leave at least one entry here or Travis seems to generate a
|
|
|
+ ## matrix entry with empty matrix environment variables. Leaving
|
|
|
+ ## more than one entry causes unwanted matrix entries with
|
|
|
+ ## unspecified compilers.
|
|
|
- RUST_OPTIONS="--enable-rust --enable-cargo-online-mode"
|
|
|
- - RUST_OPTIONS="--enable-rust" TOR_RUST_DEPENDENCIES=true
|
|
|
- - RUST_OPTIONS=""
|
|
|
+ # - RUST_OPTIONS="--enable-rust" TOR_RUST_DEPENDENCIES=true
|
|
|
+ # - RUST_OPTIONS=""
|
|
|
|
|
|
matrix:
|
|
|
## If one build in the matrix fails (e.g. if building withour Rust and Clang
|
|
@@ -65,6 +75,28 @@ matrix:
|
|
|
## entire job early and call the whole thing a failure.
|
|
|
fast_finish: true
|
|
|
|
|
|
+ ## Create explicit matrix entries to work around a Travis CI
|
|
|
+ ## environment issue. Missing keys inherit from the first list
|
|
|
+ ## entry under that key outside the "include" clause.
|
|
|
+ include:
|
|
|
+ - compiler: gcc
|
|
|
+ - compiler: gcc
|
|
|
+ env: RUST_OPTIONS="--enable-rust" TOR_RUST_DEPENDENCIES=true
|
|
|
+ - compiler: gcc
|
|
|
+ env: RUST_OPTIONS=""
|
|
|
+ ## The "sudo: required" forces non-containerized builds, working
|
|
|
+ ## around a Travis CI environment issue: clang LeakAnalyzer fails
|
|
|
+ ## because it requires ptrace and the containerized environment no
|
|
|
+ ## longer allows ptrace.
|
|
|
+ - compiler: clang
|
|
|
+ sudo: required
|
|
|
+ - compiler: clang
|
|
|
+ sudo: required
|
|
|
+ env: RUST_OPTIONS="--enable-rust" TOR_RUST_DEPENDENCIES=true
|
|
|
+ - compiler: clang
|
|
|
+ sudo: required
|
|
|
+ env: RUST_OPTIONS=""
|
|
|
+
|
|
|
before_install:
|
|
|
## If we're on OSX, homebrew usually needs to updated first
|
|
|
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update ; fi
|