summaryrefslogtreecommitdiff
path: root/.travis.yml
diff options
context:
space:
mode:
Diffstat (limited to '.travis.yml')
-rw-r--r--.travis.yml80
1 files changed, 39 insertions, 41 deletions
diff --git a/.travis.yml b/.travis.yml
index a2bc6395df..4ea9400b88 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -5,68 +5,65 @@ 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.
- - MAKEFLAGS="-j 2"
+ ## The Travis CI environment allows us two cores, so let's use both. Also,
+ ## let's use the "-k" flag so that we get all of the compilation failures,
+ ## not just the first one.
+ - MAKEFLAGS="-k -j 2"
## We turn on hardening by default
## Also known as --enable-fragile-hardening in 0.3.0.3-alpha and later
- HARDENING_OPTIONS="--enable-expensive-hardening"
## 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"
+ ## (Linux only) Use an older Linux image (Ubuntu Trusty)
+ ## The Xenial and Bionic images cause permissions issues for chutney,
+ ## this is a workaround, until we fix #32240.
+ dist: trusty
## 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
+ # Disabled due to slow Travis macOS builds, see #32177
+ #- 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
+## (Linux only) Use a recent Linux image (Ubuntu Bionic)
+dist: bionic
## Download our dependencies
addons:
@@ -110,10 +107,11 @@ addons:
- asciidoc
- xmlto
-## (OSX only) Use the default OSX image
+## (OSX only) Use a recent macOS 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
+## Default is Xcode 9.4 on macOS 10.13 as of October 2019
+## Recent is Xcode 11.2 on macOS 10.14 as of October 2019
+osx_image: xcode11.2
install:
## If we're on OSX, configure ccache (ccache is automatically installed and configured on Linux)