diff options
Diffstat (limited to '.travis.yml')
-rw-r--r-- | .travis.yml | 80 |
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) |