|
@@ -5,14 +5,12 @@ cache:
|
|
|
|
|
|
compiler:
|
|
|
- gcc
|
|
|
- - clang
|
|
|
|
|
|
os:
|
|
|
- linux
|
|
|
- - osx
|
|
|
|
|
|
-## The build matrix in the following stanza expands into builds for each
|
|
|
-## OS and compiler.
|
|
|
+## We don't use the build matrix cross-product, because it makes too many jobs
|
|
|
+## Instead, we list each job under matrix: include:
|
|
|
env:
|
|
|
global:
|
|
|
## The Travis CI environment allows us two cores, so let's use both.
|
|
@@ -23,47 +21,39 @@ env:
|
|
|
## We turn off asciidoc by default, because it's slow
|
|
|
- ASCIIDOC_OPTIONS="--disable-asciidoc"
|
|
|
matrix:
|
|
|
- ## We want to use each build option at least once
|
|
|
- ##
|
|
|
- ## We don't list default variable values, because we set the defaults
|
|
|
- ## in global (or the default is unset)
|
|
|
+ ## This matrix entry is required, but it doesn't actually create any jobs
|
|
|
-
|
|
|
|
|
|
matrix:
|
|
|
- ## include creates builds with gcc, linux
|
|
|
+ ## include creates builds with gcc, linux, unless we override those defaults
|
|
|
include:
|
|
|
- ## We include a single coverage build with the best options for coverage
|
|
|
- - env: COVERAGE_OPTIONS="--enable-coverage" HARDENING_OPTIONS=""
|
|
|
- ## We only want to check these build option combinations once
|
|
|
- ## (they shouldn't vary by compiler or OS)
|
|
|
- ## We run coverage with hardening off, which seems like enough
|
|
|
- # - env: HARDENING_OPTIONS=""
|
|
|
+ ## We run basic tests on macOS
|
|
|
+ - compiler: clang
|
|
|
+ os: osx
|
|
|
+ ## We run chutney on Linux, because it's faster than chutney on macOS
|
|
|
+ - env: CHUTNEY="yes" CHUTNEY_ALLOW_FAILURES="2" SKIP_MAKE_CHECK="yes"
|
|
|
## We check asciidoc with distcheck, to make sure we remove doc products
|
|
|
+ ## We use Linux clang, because there are no other Linux clang jobs
|
|
|
- env: DISTCHECK="yes" ASCIIDOC_OPTIONS="" SKIP_MAKE_CHECK="yes"
|
|
|
- # We also try running a hardened clang build with chutney on Linux.
|
|
|
- - env: CHUTNEY="yes" SKIP_MAKE_CHECK="yes" CHUTNEY_ALLOW_FAILURES="2"
|
|
|
compiler: clang
|
|
|
+ ## We include a single coverage build with the best options for coverage
|
|
|
+ - env: COVERAGE_OPTIONS="--enable-coverage" HARDENING_OPTIONS=""
|
|
|
+ ## We run chutney on macOS, because macOS Travis has IPv6
|
|
|
+ - env: CHUTNEY="yes" CHUTNEY_ALLOW_FAILURES="2" SKIP_MAKE_CHECK="yes"
|
|
|
+ os: osx
|
|
|
|
|
|
- ## 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
|
|
|
+ ## Allow the build to report success (with non-required sub-builds
|
|
|
+ ## continuing to run) if all required sub-builds have succeeded.
|
|
|
+ fast_finish: true
|
|
|
|
|
|
- ## Careful! We use global envs, which makes it hard to exclude or
|
|
|
- ## allow failures by env:
|
|
|
+ ## Careful! We use global envs, which makes it hard to allow failures by env:
|
|
|
## https://docs.travis-ci.com/user/customizing-the-build#matching-jobs-with-allow_failures
|
|
|
- exclude:
|
|
|
- ## gcc on OSX is less useful, because the default compiler is clang.
|
|
|
- - compiler: gcc
|
|
|
+ allow_failures:
|
|
|
+ ## macOS chutney is very slow, so we let the build finish before it's done
|
|
|
+ ## We'd like to fast finish, but still eventually show failures.
|
|
|
+ ## But Travis doesn't have that option.
|
|
|
+ - env: CHUTNEY="yes" CHUTNEY_ALLOW_FAILURES="2" SKIP_MAKE_CHECK="yes"
|
|
|
os: osx
|
|
|
- ## gcc on Linux with no env is redundant, because all the custom builds use
|
|
|
- ## gcc on Linux
|
|
|
- - compiler: gcc
|
|
|
- os: linux
|
|
|
- env:
|
|
|
|
|
|
## (Linux only) Use the latest Linux image (Ubuntu Trusty)
|
|
|
dist: trusty
|