Skip to content

Commit f58d68b

Browse files
committed
[Travis] Complete overhauld of CI
Drop a bunch of old compiler and tool versions with the aim of getting the CI back into shape.
1 parent 9cd5744 commit f58d68b

File tree

2 files changed

+28
-76
lines changed

2 files changed

+28
-76
lines changed

.travis.yml

Lines changed: 25 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
language: cpp
66
os: linux # Jobs are on Linux unless specified otherwise
7-
dist: trusty # Jobs are on Trusty unless specified otherwise
7+
dist: xenial
88
sudo: false
99

1010
env:
@@ -22,39 +22,19 @@ matrix:
2222
# Note that we only use the memory checker on the main configuration to
2323
# speed up Travis builds.
2424
##########################################################################
25-
# Clang 3.9
26-
- env: UNIT_TESTS=true COMPILER=clang++-3.9 BOOST_VERSION=default ENABLE_MEMCHECK=true
27-
addons: { apt: { packages: ["clang-3.9", "valgrind"], sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-trusty-3.9"] } }
28-
29-
# Clang 4.0
30-
- env: UNIT_TESTS=true COMPILER=clang++-4.0 BOOST_VERSION=default ENABLE_MEMCHECK=true
31-
addons: { apt: { packages: ["clang-4.0", "valgrind"], sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-trusty-4.0"] } }
32-
33-
# Clang 5.0
34-
- env: UNIT_TESTS=true COMPILER=clang++-5.0 BOOST_VERSION=default ENABLE_MEMCHECK=true
35-
addons: { apt: { packages: ["clang-5.0", "valgrind"], sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-trusty-5.0"] } }
36-
37-
# Clang 6.0
38-
- env: UNIT_TESTS=true COMPILER=clang++-6.0 BOOST_VERSION=default ENABLE_MEMCHECK=true
39-
addons: { apt: { packages: ["clang-6.0", "valgrind"], sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-trusty-6.0"] } }
40-
41-
# Clang 7.0
25+
# Clang 7
4226
- env: UNIT_TESTS=true COMPILER=clang++-7 BOOST_VERSION=default ENABLE_MEMCHECK=true
43-
addons: &defaults { apt: { packages: ["clang-7", "valgrind"], sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-trusty-7"] } }
44-
45-
# GCC 6
46-
- env: UNIT_TESTS=true COMPILER=g++-6 BOOST_VERSION=default ENABLE_MEMCHECK=true
47-
addons: { apt: { packages: ["g++-6", "valgrind"], sources: ["ubuntu-toolchain-r-test"] } }
27+
addons: { apt: { packages: ["clang-7", "valgrind"], sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-xenial-7"] } }
4828

49-
# GCC 7
50-
- env: UNIT_TESTS=true COMPILER=g++-7 BOOST_VERSION=default ENABLE_MEMCHECK=true
51-
addons: { apt: { packages: ["g++-7", "valgrind"], sources: ["ubuntu-toolchain-r-test"] } }
29+
# Clang 8
30+
- env: UNIT_TESTS=true COMPILER=clang++-8 BOOST_VERSION=default ENABLE_MEMCHECK=true
31+
addons: &defaults { apt: { packages: ["clang-8", "valgrind"], sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-xenial-8"] } }
5232

5333
# GCC 8
5434
- env: UNIT_TESTS=true COMPILER=g++-8 BOOST_VERSION=default ENABLE_MEMCHECK=true
5535
addons: { apt: { packages: ["g++-8", "valgrind"], sources: ["ubuntu-toolchain-r-test"] } }
5636

57-
# Xcode 9.1
37+
# Xcode 11
5838
- os: osx
5939
env: UNIT_TESTS=true BOOST_VERSION=default
6040
osx_image: xcode11
@@ -66,9 +46,17 @@ matrix:
6646
- env: UNIT_TESTS=true COMPILER=default BOOST_VERSION=default CMAKE_OPTIONS="-DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_STANDARD_REQUIRED=ON"
6747
addons: *defaults
6848

49+
# With C++20, on Clang
50+
- env: UNIT_TESTS=true COMPILER=default BOOST_VERSION=default CMAKE_OPTIONS="-DCMAKE_CXX_STANDARD=20 -DCMAKE_CXX_STANDARD_REQUIRED=ON"
51+
addons: *defaults
52+
6953
# With C++17, on GCC
70-
- env: UNIT_TESTS=true COMPILER=g++-6 BOOST_VERSION=default CMAKE_OPTIONS="-DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_STANDARD_REQUIRED=ON"
71-
addons: { apt: { packages: ["g++-6", "valgrind"], sources: ["ubuntu-toolchain-r-test"] } }
54+
- env: UNIT_TESTS=true COMPILER=g++-8 BOOST_VERSION=default CMAKE_OPTIONS="-DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_STANDARD_REQUIRED=ON"
55+
addons: { apt: { packages: ["g++-8", "valgrind"], sources: ["ubuntu-toolchain-r-test"] } }
56+
57+
# With C++20, on GCC
58+
- env: UNIT_TESTS=true COMPILER=g++-8 BOOST_VERSION=default CMAKE_OPTIONS="-DCMAKE_CXX_STANDARD=20 -DCMAKE_CXX_STANDARD_REQUIRED=ON"
59+
addons: { apt: { packages: ["g++-8", "valgrind"], sources: ["ubuntu-toolchain-r-test"] } }
7260

7361
# Without concept checks
7462
- env: UNIT_TESTS=true COMPILER=default BOOST_VERSION=default CMAKE_OPTIONS="-DBOOST_HANA_ENABLE_CONCEPT_CHECKS=OFF"
@@ -87,12 +75,8 @@ matrix:
8775
env: UNIT_TESTS=true BOOST_VERSION=default CMAKE_OPTIONS="-DBOOST_HANA_ENABLE_EXCEPTIONS=OFF"
8876
osx_image: xcode11
8977

90-
# With Boost 1.64
91-
- env: UNIT_TESTS=true COMPILER=default BOOST_VERSION=1.64.0
92-
addons: *defaults
93-
94-
# With Boost 1.65.1
95-
- env: UNIT_TESTS=true COMPILER=default BOOST_VERSION=1.65.1
78+
# With Boost 1.76.0
79+
- env: UNIT_TESTS=true COMPILER=default BOOST_VERSION=1.76.0
9680
addons: *defaults
9781

9882
# Without Boost (make sure we don't depend on it)
@@ -113,6 +97,7 @@ matrix:
11397
##########################################################################
11498
- os: osx
11599
env: DOCUMENTATION=true BOOST_VERSION=default
100+
osx_image: xcode11
116101

117102
##########################################################################
118103
# Benchmarks
@@ -142,8 +127,8 @@ install:
142127
############################################################################
143128
# Setup default versions and override CXX set by Travis if needed
144129
############################################################################
145-
- if [[ "${COMPILER}" == "default" ]]; then COMPILER=clang++-7; fi
146-
- if [[ "${BOOST_VERSION}" == "default" ]]; then BOOST_VERSION=1.66.0; fi
130+
- if [[ "${COMPILER}" == "default" ]]; then COMPILER=clang++-8; fi
131+
- if [[ "${BOOST_VERSION}" == "default" ]]; then BOOST_VERSION=1.76.0; fi
147132

148133
- if [[ "${COMPILER}" != "" ]]; then export CXX=${COMPILER}; fi
149134
- ${CXX} --version
@@ -159,7 +144,7 @@ install:
159144
travis_retry git clone --depth 1 --recursive ${BOOST_URL} ${BOOST_DIR} || exit 1
160145
(cd ${BOOST_DIR} && ./bootstrap.sh && ./b2 headers) || exit 1
161146
else
162-
BOOST_URL="https://dl.bintray.com/boostorg/release/${BOOST_VERSION}/source/boost_${BOOST_VERSION//\./_}.tar.gz"
147+
BOOST_URL="https://boostorg.jfrog.io/artifactory/main/release/${BOOST_VERSION}/source/boost_${BOOST_VERSION//\./_}.tar.gz"
163148
mkdir -p ${BOOST_DIR}
164149
{ travis_retry wget -O - ${BOOST_URL} | tar --strip-components=1 -xz -C ${BOOST_DIR}; } || exit 1
165150
fi
@@ -174,7 +159,7 @@ install:
174159
############################################################################
175160
- |
176161
if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then
177-
CMAKE_URL="https://cmake.org/files/v3.10/cmake-3.10.0-Linux-x86_64.tar.gz"
162+
CMAKE_URL="https://github.com/Kitware/CMake/releases/download/v3.20.2/cmake-3.20.2.tar.gz"
178163
mkdir cmake && travis_retry wget --no-check-certificate --quiet -O - ${CMAKE_URL} | tar --strip-components=1 -xz -C cmake
179164
export PATH=${DEPS_DIR}/cmake/bin:${PATH}
180165
else
@@ -192,35 +177,6 @@ install:
192177
b2 --version || true # b2 --version returns 1
193178
fi
194179
195-
############################################################################
196-
# Install libc++ and libc++abi if needed
197-
############################################################################
198-
- |
199-
if [[ "${CXX%%+*}" == "clang" ]]; then
200-
if [[ "${CXX}" == "clang++-3.9" ]]; then LLVM_VERSION="3.9.1";
201-
elif [[ "${CXX}" == "clang++-4.0" ]]; then LLVM_VERSION="4.0.1";
202-
elif [[ "${CXX}" == "clang++-5.0" ]]; then LLVM_VERSION="5.0.2";
203-
elif [[ "${CXX}" == "clang++-6.0" ]]; then LLVM_VERSION="6.0.1";
204-
elif [[ "${CXX}" == "clang++-7" ]]; then LLVM_VERSION="7.0.1";
205-
fi
206-
207-
LLVM_URL="http://llvm.org/releases/${LLVM_VERSION}/llvm-${LLVM_VERSION}.src.tar.xz"
208-
LIBCXX_URL="http://llvm.org/releases/${LLVM_VERSION}/libcxx-${LLVM_VERSION}.src.tar.xz"
209-
LIBCXXABI_URL="http://llvm.org/releases/${LLVM_VERSION}/libcxxabi-${LLVM_VERSION}.src.tar.xz"
210-
211-
mkdir -p llvm llvm/build llvm/projects/libcxx llvm/projects/libcxxabi
212-
travis_retry wget -O - ${LLVM_URL} | tar --strip-components=1 -xJ -C llvm || exit 1
213-
travis_retry wget -O - ${LIBCXX_URL} | tar --strip-components=1 -xJ -C llvm/projects/libcxx || exit 1
214-
travis_retry wget -O - ${LIBCXXABI_URL} | tar --strip-components=1 -xJ -C llvm/projects/libcxxabi || exit 1
215-
(cd llvm/build && cmake .. -DCMAKE_INSTALL_PREFIX=${DEPS_DIR}/llvm/install) || exit 1
216-
(cd llvm/build/projects/libcxx && make install -j2) || exit 1
217-
(cd llvm/build/projects/libcxxabi && make install -j2) || exit 1
218-
219-
export CXXFLAGS="-isystem ${DEPS_DIR}/llvm/install/include/c++/v1"
220-
export LDFLAGS="-L ${DEPS_DIR}/llvm/install/lib -l c++ -l c++abi"
221-
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${DEPS_DIR}/llvm/install/lib"
222-
fi
223-
224180
############################################################################
225181
# Install a recent Doxygen
226182
############################################################################
@@ -358,11 +314,7 @@ script:
358314
359315
# Build tests
360316
echo "using clang : : ${CXX} ;" > project-config.jam
361-
if [[ "${LDFLAGS}" == "" ]]; then
362-
(cd test && b2 toolset=clang cxxflags="-std=c++1y ${CXXFLAGS}" include="${BOOST_DIR}") || exit 1
363-
else
364-
(cd test && b2 toolset=clang cxxflags="-std=c++1y ${CXXFLAGS}" include="${BOOST_DIR}" linkflags="${LDFLAGS}") || exit 1
365-
fi
317+
(cd test && b2 toolset=clang cxxflags="-std=c++1y" include="${BOOST_DIR}") || exit 1
366318
fi
367319
368320

doc/tutorial.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,9 +109,9 @@ below, which are tested on an ongoing basis:
109109
110110
Compiler/Toolchain | Status
111111
------------------ | ------
112-
Clang >= 3.9.1 | Fully working; tested on each push to GitHub
113-
Xcode >= 9.1 | Fully working; tested on each push to GitHub
114-
GCC >= 6.0.0 | Fully working; tested on each push to GitHub
112+
Clang >= 7 | Fully working; tested on each push to GitHub
113+
Xcode >= 11 | Fully working; tested on each push to GitHub
114+
GCC >= 8 | Fully working; tested on each push to GitHub
115115
VS2017 >= Update 7 | Fully working; tested on each push to GitHub
116116
117117
More specifically, Hana requires a compiler/standard library supporting the

0 commit comments

Comments
 (0)