You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
trompeloeil/.travis.yml

486 lines
12 KiB
YAML

language: python
python:
- 3.7
dist: xenial
matrix:
include:
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.7
- ppa:george-edison55/cmake-3.x
packages:
- g++-6
- clang-3.7
- llvm-3.7-runtime
- libcurl4-openssl-dev
- libelf-dev
- libdw-dev
env:
- COMPILER="clang++-3.7"
before_script:
# The clang runtime for the address sanitizer is missing from the
# apt, hence the downloaded tarballs.
- wget http://releases.llvm.org/3.7.1/clang+llvm-3.7.1-x86_64-linux-gnu-ubuntu-14.04.tar.xz
- tar -xvf clang+llvm-3.7.1-x86_64-linux-gnu-ubuntu-14.04.tar.xz
- sudo cp -n clang+llvm-3.7.1-x86_64-linux-gnu-ubuntu-14.04/lib/clang/3.7.1/lib/linux/*.a /usr/lib/llvm-3.7/lib/clang/3.7.1/lib/linux/
- CXX=${COMPILER} ./check_errors.sh ||
{
FAILURES="$?" ;
echo "Expected zero failures from check_errors.sh, got ${FAILURES}" ;
exit 1 ;
}
- mkdir build && cd build
- CXX=${COMPILER} cmake -DCMAKE_BUILD_TYPE=Debug -DTRAVIS_JOB_ID='${TRAVIS_JOB_ID}' -DSANITIZE=true ..
- make -j 4 VERBOSE=1 self_test kcov
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-3.8
packages:
- g++-6
- clang-3.8
- libcurl4-openssl-dev
- libelf-dev
- libdw-dev
env:
- COMPILER="clang++-3.8" CXXFLAGS="-std=c++14" SANITIZE=true
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.9
packages:
- g++-6
- clang-3.9
- libcurl4-openssl-dev
- libelf-dev
- libdw-dev
env:
- COMPILER="clang++-3.9"
before_script:
# Unlike with clang++-3.7, the runtime libraries exists with 3.9,
# but still doesn't work because of gold linker version incompatibility.
# The tarball download takes care of that.
- wget http://releases.llvm.org/3.9.1/clang+llvm-3.9.1-x86_64-linux-gnu-ubuntu-14.04.tar.xz
- tar -xvf clang+llvm-3.9.1-x86_64-linux-gnu-ubuntu-14.04.tar.xz
- sudo cp clang+llvm-3.9.1-x86_64-linux-gnu-ubuntu-14.04/lib/clang/3.9.1/lib/linux/*.a /usr/lib/llvm-3.9/lib/clang/3.9.1/lib/linux/
- CXX=${COMPILER} ./check_errors.sh ||
{
FAILURES="$?" ;
echo "Expected zero failures from check_errors.sh, got ${FAILURES}" ;
exit 1 ;
}
- mkdir build && cd build
- CXX=${COMPILER} cmake -DCMAKE_BUILD_TYPE=Debug -DTRAVIS_JOB_ID='${TRAVIS_JOB_ID}' -DSANITIZE=true ..
- make -j 4 VERBOSE=1 self_test kcov
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-4.0
packages:
- g++-6
- clang-4.0
- libcurl4-openssl-dev
- libelf-dev
- libdw-dev
env:
- COMPILER="clang++-4.0" SANITIZE=true
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-xenial-5.0
packages:
- g++-6
- clang-5.0
- libcurl4-openssl-dev
- libelf-dev
- libdw-dev
env:
- COMPILER="clang++-5.0" SANITIZE=true
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-xenial-6.0
packages:
- g++-6
- clang-6.0
- libcurl4-openssl-dev
- libelf-dev
- libdw-dev
env:
- COMPILER="clang++-6.0" SANITIZE=true
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-xenial-7
packages:
- g++-6
- clang-7
- libcurl4-openssl-dev
- libelf-dev
- libdw-dev
env:
- COMPILER="clang++-7" SANITIZE=false
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-xenial-8
packages:
- g++-6
- clang-8
- libcurl4-openssl-dev
- libelf-dev
- libdw-dev
env:
- COMPILER="clang++-8" SANITIZE=false
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-xenial-8
packages:
- g++-6
- clang-8
- libc++-8-dev
- libc++abi-8-dev
- libcurl4-openssl-dev
- libelf-dev
- libdw-dev
env:
- COMPILER="clang++-8" SANITIZE=false CXX_STDLIB="libc++"
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-xenial-8
packages:
- g++-6
- clang-8
- libc++-8-dev
- libc++abi-8-dev
- libcurl4-openssl-dev
- libelf-dev
- libdw-dev
env:
- COMPILER="clang++-8" SANITIZE=false CXX_STDLIB="libc++" CXX_STANDARD="17" CONAN_COMPILER=clang CC_VERSION=8
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-xenial-8
packages:
- g++-6
- clang-8
- libc++-8-dev
- libc++abi-8-dev
- libcurl4-openssl-dev
- libelf-dev
- libdw-dev
env:
- COMPILER="clang++-8" SANITIZE=false CXX_STDLIB="libc++" CXX_STANDARD="20"
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-4.8
- libcurl4-openssl-dev
- libelf-dev
- libdw-dev
env:
- COMPILER="g++-4.8" CXXFLAGS="-std=c++11" CXX_STANDARD="11" SANITIZE=true
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-4.9
- libcurl4-openssl-dev
- libelf-dev
- libdw-dev
env:
- COMPILER="g++-4.9" SANITIZE=true CONAN_COMPILER=gcc CC_VERSION=4.9
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-5
- libcurl4-openssl-dev
- libelf-dev
- libdw-dev
env:
- COMPILER="g++-5" SANITIZE=true
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-5
- libcurl4-openssl-dev
- libelf-dev
- libdw-dev
env:
- COMPILER="g++-5" SANITIZE=true CXX_STANDARD="17"
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-6
- libcurl4-openssl-dev
- libelf-dev
- libdw-dev
env:
- COMPILER="g++-6" SANITIZE=true
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-6
- libcurl4-openssl-dev
- libelf-dev
- libdw-dev
env:
- COMPILER="g++-6" SANITIZE=true CXX_STANDARD=17
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-7
- libcurl4-openssl-dev
- libelf-dev
- libdw-dev
env:
- COMPILER="g++-7" SANITIZE=true
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-7
- libcurl4-openssl-dev
- libelf-dev
- libdw-dev
env:
- COMPILER="g++-7" SANITIZE=true CXX_STANDARD=17
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-8
- libcurl4-openssl-dev
- libelf-dev
- libdw-dev
env:
- COMPILER="g++-8" SANITIZE=true
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-8
- libcurl4-openssl-dev
- libelf-dev
- libdw-dev
env:
- COMPILER="g++-8" SANITIZE=true CXX_STANDARD="17"
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-8
- libcurl4-openssl-dev
- libelf-dev
- libdw-dev
env:
- COMPILER="g++-8" SANITIZE=true CXX_STANDARD="20"
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-9
- libcurl4-openssl-dev
- libelf-dev
- libdw-dev
env:
- COMPILER="g++-9" SANITIZE=true CONAN_COMPILER=gcc CC_VERSION=9.3
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-9
- libcurl4-openssl-dev
- libelf-dev
- libdw-dev
env:
- COMPILER="g++-9" SANITIZE=true CXX_STANDARD="17"
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-9
- libc++-8-dev
- libc++abi-8-dev
- libcurl4-openssl-dev
- libelf-dev
- libdw-dev
env:
- COMPILER="g++-9" SANITIZE=false CXX_STANDARD="17" CXX_STDLIB="libc++"
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-9
- libcurl4-openssl-dev
- libelf-dev
- libdw-dev
env:
- COMPILER="g++-9" SANITIZE=true CXX_STANDARD="20"
- os: osx
language: c++
osx_image: xcode12
compiler: clang
env:
- COMPILER="clang++" SANITIZE=false
- os: osx
language: c++
osx_image: xcode11
compiler: clang
env:
- COMPILER="clang++" SANITIZE=false CONAN_COMPILER=apple-clang CC_VERSION=11.0 CC_LIBCXX=libc++
- os: osx
language: c++
osx_image: xcode10.3
compiler: clang
env:
- COMPILER="clang++" SANITIZE=false
- os: osx
language: c++
osx_image: xcode9.3
compiler: clang
env:
- COMPILER="clang++" SANITIZE=false CONAN_COMPILER=apple-clang CC_VERSION=9.1 CC_LIBCXX=libc++
install:
- |
if [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then
which cmake || brew install cmake
which pip3 || brew upgrade python@3 || brew upgrade python@3 || true
fi
pip3 install conan
before_script:
- CXX=${COMPILER} CXXFLAGS=${CXXFLAGS} ./check_errors.sh ||
{
FAILURES="$?" ;
if [[ ${CXX_STANDARD} == "11" ]]; then
if [[ ${FAILURES} != "4" ]]; then
echo "Expected four failures from C++11 check_errors.sh, got ${FAILURES}" ;
exit 1 ;
fi ;
else
echo "Expected zero failures from check_errors.sh, got ${FAILURES}" ;
exit 1 ;
fi ;
}
- |
if [[ ! -z "${CONAN_COMPILER}" ]]; then
conan --version
export CC_LIBCXX=${CC_LIBCXX:-libstdc++11} # Default to GCC
conan create \
-e CXX=${COMPILER} \
-s compiler=${CONAN_COMPILER} \
-s compiler.version=${CC_VERSION} \
-s compiler.libcxx=${CC_LIBCXX} \
. testuser/testchannel
fi
- mkdir build && cd build
- CXX=${COMPILER} cmake -DCMAKE_BUILD_TYPE=Debug -DCXX_STANDARD="${CXX_STANDARD}" -DCXX_STDLIB="${CXX_STDLIB}" -DTRAVIS_JOB_ID='${TRAVIS_JOB_ID}' -DSANITIZE=${SANITIZE} ..
- make VERBOSE=1 self_test
- make VERBOSE=1 custom_recursive_mutex
script:
make run_self_test
after_success:
- |
if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then
make VERBOSE=1 run_coverage
fi