From 7cab285eda710d9309a285b765112e295bd99ba0 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Mon, 5 Nov 2018 06:32:27 +0100 Subject: [PATCH] CI: maximize chances of errors sooner * .travis.yml: Try clang and icc soon, so that we don't have to wait for the end of the run to know that they fail. --- .travis.yml | 81 +++++++++++++++++++++++++++++------------------------ 1 file changed, 44 insertions(+), 37 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3cb65ef7..d3ebd643 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,9 +12,53 @@ env: matrix: include: + ## ------- ## + ## First. ## + ## ------- ## + + # Start with three completely different environments, to get + # errors asap. + + - name: "GCC 7 -O3" + os: linux + addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - g++-7 + env: + - MATRIX_EVAL="CC=gcc-7 && CXX=g++-7 && CONFIGUREFLAGS='CPPFLAGS=-DNDEBUG CFLAGS=-O3 CXXFLAGS=-O3'" + + - name: "Clang 7 libc++ and ASAN" + os: linux + addons: + apt: + sources: + - llvm-toolchain-trusty-7 + - ubuntu-toolchain-r-test + packages: + - clang-7 + - libc++-7-dev + - libc++abi-7-dev + env: + # Do not use ASAN with ubuntu's libc++: https://bugs.llvm.org/show_bug.cgi?id=17379 + - MATRIX_EVAL="CC='clang-7 -fsanitize=address' CXX='clang++-7 -fsanitize=address -stdlib=libc++'" + + - name: "ICC" + os: linux + env: + # ICC's warnings are often very wrong (e.g., it thinks foo ? + # "bar" : "baz" is char* instead of const char*), so don't try + # to work around the, and obviously, don't die on them. + - MATRIX_EVAL="CC=icc && CXX=icpc" + - MAKE_ARGS='WERROR_CFLAGS= WERROR_CXXFLAGS=' + + ## ----- ## ## GCC. ## ## ----- ## + #- name: "GCC 8 with sanitizers" # os: linux # addons: @@ -29,17 +73,6 @@ matrix: # # /usr/bin/ld: unrecognized option '--push-state' # - MATRIX_EVAL="CC='gcc-8 -fsanitize=undefined,address -fno-omit-frame-pointer' CXX='g++-8 -fsanitize=undefined,address -fno-omit-frame-pointer'" - - name: "GCC 7 -O3" - os: linux - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-7 - env: - - MATRIX_EVAL="CC=gcc-7 && CXX=g++-7 && CONFIGUREFLAGS='CPPFLAGS=-DNDEBUG CFLAGS=-O3 CXXFLAGS=-O3'" - - name: "GCC 6" os: linux addons: @@ -110,21 +143,6 @@ matrix: ## Clang. ## ## ------- ## - - name: "Clang 7 libc++ and ASAN" - os: linux - addons: - apt: - sources: - - llvm-toolchain-trusty-7 - - ubuntu-toolchain-r-test - packages: - - clang-7 - - libc++-7-dev - - libc++abi-7-dev - env: - # Do not use ASAN with ubuntu's libc++: https://bugs.llvm.org/show_bug.cgi?id=17379 - - MATRIX_EVAL="CC='clang-7 -fsanitize=address' CXX='clang++-7 -fsanitize=address -stdlib=libc++'" - - name: "Clang 6 -O3 and libc++" os: linux addons: @@ -242,17 +260,6 @@ matrix: # See comment for 3.4. - MATRIX_EVAL='CC=/usr/bin/clang && CXX=/usr/bin/clang++' - ## ----- ## - ## ICC. ## - ## ----- ## - - name: "ICC" - os: linux - env: - # ICC's warnings are often very wrong (e.g., it thinks foo ? - # "bar" : "baz" is char* instead of const char*), so don't try - # to work around the, and obviously, don't die on them. - - MATRIX_EVAL="CC=icc && CXX=icpc" - - MAKE_ARGS='WERROR_CFLAGS= WERROR_CXXFLAGS=' before_install: - eval "$MATRIX_EVAL"