From 1067b2d17027b8933e0259701502a78ad9d4234e Mon Sep 17 00:00:00 2001 From: Andrey Semashev Date: Tue, 22 Oct 2019 00:38:27 +0300 Subject: [PATCH] Updated CI configs, added compilers. --- .travis.yml | 207 ++++++++++++++++++++++++++++++++++++++------------- appveyor.yml | 85 ++++++++++++--------- 2 files changed, 204 insertions(+), 88 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4ded438..d3a9f12 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,5 @@ # Copyright 2016, 2017 Peter Dimov +# Copyright 2019 Andrey Semashev # Distributed under the Boost Software License, Version 1.0. # (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt) @@ -12,6 +13,7 @@ branches: only: - master - develop + - /feature\/.*/ env: matrix: @@ -23,12 +25,10 @@ matrix: - env: EMPTY=true include: +# gcc, Linux - os: linux - compiler: g++ - env: TOOLSET=gcc COMPILER=g++ CXXSTD=03,11 - - - os: linux - compiler: g++-4.4 + dist: trusty + compiler: gcc-4.4 env: TOOLSET=gcc COMPILER=g++-4.4 CXXSTD=98,0x addons: apt: @@ -38,7 +38,8 @@ matrix: - ubuntu-toolchain-r-test - os: linux - compiler: g++-4.6 + dist: trusty + compiler: gcc-4.6 env: TOOLSET=gcc COMPILER=g++-4.6 CXXSTD=03,0x addons: apt: @@ -48,7 +49,8 @@ matrix: - ubuntu-toolchain-r-test - os: linux - compiler: g++-4.7 + dist: trusty + compiler: gcc-4.7 env: TOOLSET=gcc COMPILER=g++-4.7 CXXSTD=03,11 addons: apt: @@ -58,7 +60,8 @@ matrix: - ubuntu-toolchain-r-test - os: linux - compiler: g++-4.8 + dist: xenial + compiler: gcc-4.8 env: TOOLSET=gcc COMPILER=g++-4.8 CXXSTD=03,11 addons: apt: @@ -68,7 +71,8 @@ matrix: - ubuntu-toolchain-r-test - os: linux - compiler: g++-4.9 + dist: xenial + compiler: gcc-4.9 env: TOOLSET=gcc COMPILER=g++-4.9 CXXSTD=03,11 addons: apt: @@ -78,7 +82,8 @@ matrix: - ubuntu-toolchain-r-test - os: linux - compiler: g++-5 + dist: xenial + compiler: gcc-5 env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=03,11,14,1z addons: apt: @@ -88,7 +93,8 @@ matrix: - ubuntu-toolchain-r-test - os: linux - compiler: g++-6 + dist: xenial + compiler: gcc-6 env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=03,11,14,1z addons: apt: @@ -98,7 +104,8 @@ matrix: - ubuntu-toolchain-r-test - os: linux - compiler: g++-7 + dist: xenial + compiler: gcc-7 env: TOOLSET=gcc COMPILER=g++-7 CXXSTD=03,11,14,17 addons: apt: @@ -108,7 +115,8 @@ matrix: - ubuntu-toolchain-r-test - os: linux - compiler: g++-8 + dist: xenial + compiler: gcc-8 env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=03,11,14,17,2a addons: apt: @@ -118,37 +126,45 @@ matrix: - ubuntu-toolchain-r-test - os: linux - compiler: g++-9 + dist: bionic + compiler: gcc-9 env: TOOLSET=gcc COMPILER=g++-9 CXXSTD=03,11,14,17,2a addons: apt: packages: - g++-9 sources: - - ubuntu-toolchain-r-test + - sourceline: "ppa:ubuntu-toolchain-r/test" - os: linux - compiler: clang++ - env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11 - - - os: linux - compiler: /usr/bin/clang++ - env: TOOLSET=clang COMPILER=/usr/bin/clang++ CXXSTD=03,11 + dist: bionic + compiler: gcc-UBSAN + env: UBSAN=1 TOOLSET=gcc COMPILER=g++-9 CXXSTD=03,11,14,17,2a UBSAN_OPTIONS=print_stacktrace=1 LINKFLAGS=-fuse-ld=gold addons: apt: packages: - - clang-3.3 + - g++-9 + sources: + - sourceline: "ppa:ubuntu-toolchain-r/test" +# clang, Linux - os: linux - compiler: /usr/bin/clang++ - env: TOOLSET=clang COMPILER=/usr/bin/clang++ CXXSTD=03,11 + dist: trusty + compiler: clang-3.4 + env: TOOLSET=clang COMPILER=clang++-3.4 CXXSTD=03,11 addons: apt: packages: - clang-3.4 + - libstdc++-4.9-dev + sources: + - ubuntu-toolchain-r-test + - sourceline: "deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-3.4 main" + key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key" - os: linux - compiler: clang++-3.5 + dist: trusty + compiler: clang-3.5 env: TOOLSET=clang COMPILER=clang++-3.5 CXXSTD=03,11,14,1z addons: apt: @@ -157,125 +173,212 @@ matrix: - libstdc++-4.9-dev sources: - ubuntu-toolchain-r-test - - llvm-toolchain-precise-3.5 + - sourceline: "deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-3.5 main" + key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key" - os: linux - compiler: clang++-3.6 + dist: trusty + compiler: clang-3.6 env: TOOLSET=clang COMPILER=clang++-3.6 CXXSTD=03,11,14,1z addons: apt: packages: - clang-3.6 + - libstdc++-5-dev sources: - ubuntu-toolchain-r-test - - llvm-toolchain-precise-3.6 + - sourceline: "deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-3.6 main" + key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key" - os: linux - compiler: clang++-3.7 + dist: trusty + compiler: clang-3.7 env: TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=03,11,14,1z addons: apt: packages: - clang-3.7 + - libstdc++-5-dev sources: - ubuntu-toolchain-r-test - - llvm-toolchain-precise-3.7 + - sourceline: "deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-3.7 main" + key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key" - os: linux - compiler: clang++-3.8 + dist: xenial + compiler: clang-3.8 env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=03,11,14,1z addons: apt: packages: - clang-3.8 - - libstdc++-4.9-dev + - libstdc++-6-dev sources: - ubuntu-toolchain-r-test - - llvm-toolchain-precise-3.8 + - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-3.8 main" + key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key" - os: linux - compiler: clang++-3.9 + dist: xenial + compiler: clang-3.9 env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=03,11,14,1z addons: apt: packages: - clang-3.9 - - libstdc++-4.9-dev + - libstdc++-6-dev sources: - ubuntu-toolchain-r-test - - llvm-toolchain-precise-3.9 + - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-3.9 main" + key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key" - os: linux - compiler: clang++-4.0 + dist: xenial + compiler: clang-4 env: TOOLSET=clang COMPILER=clang++-4.0 CXXSTD=03,11,14,1z addons: apt: packages: - clang-4.0 + - libstdc++-6-dev sources: - ubuntu-toolchain-r-test - - llvm-toolchain-trusty-4.0 + - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-4.0 main" + key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key" - os: linux - compiler: clang++-5.0 + dist: xenial + compiler: clang-5 env: TOOLSET=clang COMPILER=clang++-5.0 CXXSTD=03,11,14,1z addons: apt: packages: - clang-5.0 + - libstdc++-7-dev sources: - ubuntu-toolchain-r-test - - llvm-toolchain-trusty-5.0 + - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-5.0 main" + key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key" - os: linux - compiler: clang++-6.0 + dist: xenial + compiler: clang-6 env: TOOLSET=clang COMPILER=clang++-6.0 CXXSTD=03,11,14,17,2a addons: apt: packages: - clang-6.0 + - libstdc++-8-dev sources: - ubuntu-toolchain-r-test - - llvm-toolchain-trusty-6.0 + - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-6.0 main" + key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key" - os: linux - compiler: clang++-7 + dist: xenial + compiler: clang-7 env: TOOLSET=clang COMPILER=clang++-7 CXXSTD=03,11,14,17,2a addons: apt: packages: - clang-7 + - libstdc++-8-dev sources: - ubuntu-toolchain-r-test - - llvm-toolchain-trusty-7 + - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main" + key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key" - os: linux - compiler: clang++-8 + dist: xenial + compiler: clang-8 env: TOOLSET=clang COMPILER=clang++-8 CXXSTD=03,11,14,17,2a addons: apt: packages: - clang-8 + - libstdc++-8-dev sources: - ubuntu-toolchain-r-test - - llvm-toolchain-trusty-8 + - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-8 main" + key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key" - os: linux - compiler: clang++-libc++ - env: TOOLSET=clang COMPILER=clang++-libc++ CXXSTD=03,11,14,1z + dist: xenial + compiler: clang-9 + env: TOOLSET=clang COMPILER=clang++-9 CXXSTD=03,11,14,17,2a addons: apt: packages: - - libc++-dev + - clang-9 + - libstdc++-9-dev + sources: + - sourceline: "ppa:ubuntu-toolchain-r/test" + - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-9 main" + key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key" + + - os: linux + dist: xenial + compiler: clang-UBSAN + env: UBSAN=1 TOOLSET=clang COMPILER=clang++-9 CXXSTD=03,11,14,17,2a UBSAN_OPTIONS=print_stacktrace=1 + addons: + apt: + packages: + - clang-9 + - libstdc++-9-dev + sources: + - sourceline: "ppa:ubuntu-toolchain-r/test" + - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-9 main" + key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key" + + - os: linux + dist: xenial + compiler: clang-libc++ + env: TOOLSET=clang COMPILER=clang++-9 CXXSTD=03,11,14,17,2a CXXFLAGS="-stdlib=libc++" LINKFLAGS="-stdlib=libc++" + addons: + apt: + packages: + - clang-9 + - libc++-9-dev + - libc++abi-9-dev + sources: + - sourceline: "ppa:ubuntu-toolchain-r/test" + - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-9 main" + key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key" + + - os: linux + dist: xenial + compiler: clang-libc++-UBSAN + env: UBSAN=1 TOOLSET=clang COMPILER=clang++-9 CXXSTD=03,11,14,17,2a UBSAN_OPTIONS=print_stacktrace=1 CXXFLAGS="-stdlib=libc++" LINKFLAGS="-stdlib=libc++" + addons: + apt: + packages: + - clang-9 + - libc++-9-dev + - libc++abi-9-dev + sources: + - sourceline: "ppa:ubuntu-toolchain-r/test" + - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-9 main" + key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key" + +# clang, OS X + - os: osx + env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z + osx_image: xcode9.4 - os: osx - compiler: clang++ env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z + osx_image: xcode10.3 + + - os: osx + env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,17 + osx_image: xcode11.2 install: - GIT_FETCH_JOBS=8 + - BOOST_BRANCH=develop + - if [ "$TRAVIS_BRANCH" = "master" ]; then BOOST_BRANCH=master; fi - cd .. - - git clone -b $TRAVIS_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root + - git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root - cd boost-root - git submodule init tools/boostdep - git submodule init tools/build @@ -292,7 +395,7 @@ script: - |- echo "using $TOOLSET : : $COMPILER ;" > ~/user-config.jam - BUILD_JOBS=`(nproc || sysctl -n hw.ncpu) 2> /dev/null` - - ./b2 -j $BUILD_JOBS libs/integer/test toolset=$TOOLSET cxxstd=$CXXSTD + - ./b2 -j $BUILD_JOBS libs/integer/test toolset=$TOOLSET cxxstd=$CXXSTD ${UBSAN:+cxxflags=-fsanitize=undefined cxxflags=-fno-sanitize-recover=undefined linkflags=-fsanitize=undefined define=UBSAN=1 debug-symbols=on visibility=global} ${CXXFLAGS:+cxxflags="$CXXFLAGS"} ${LINKFLAGS:+linkflags="$LINKFLAGS"} notifications: email: diff --git a/appveyor.yml b/appveyor.yml index 9d2365f..f7f38ea 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,4 +1,4 @@ -# Copyright 2016 Peter Dimov +# Copyright 2019 Andrey Semashev # Distributed under the Boost Software License, Version 1.0. # (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt) @@ -10,57 +10,70 @@ branches: only: - master - develop - -platform: - - x64 + - /feature\/.*/ environment: matrix: - - ARGS: --toolset=msvc-9.0 address-model=32 - - ARGS: --toolset=msvc-10.0 address-model=32 - - ARGS: --toolset=msvc-11.0 address-model=32 - - ARGS: --toolset=msvc-12.0 address-model=32 - - ARGS: --toolset=msvc-14.0 address-model=32 - - ARGS: --toolset=msvc-12.0 address-model=64 - - ARGS: --toolset=msvc-14.0 address-model=64 - - ARGS: --toolset=msvc-14.0 address-model=64 cxxflags=-std:c++latest - - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 - ARGS: --toolset=msvc-14.1 address-model=64 - - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 - ARGS: --toolset=msvc-14.1 address-model=32 - - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 - ARGS: --toolset=msvc-14.1 address-model=64 cxxflags=-std:c++latest - - ARGS: --toolset=gcc address-model=64 - PATH: C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin;%PATH% - - ARGS: --toolset=gcc address-model=64 cxxflags=-std=gnu++1z - PATH: C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin;%PATH% - - ARGS: --toolset=gcc address-model=32 - PATH: C:\mingw-w64\i686-5.3.0-posix-dwarf-rt_v4-rev0\mingw32\bin;%PATH% - - ARGS: --toolset=gcc address-model=32 linkflags=-Wl,-allow-multiple-definition - PATH: C:\MinGW\bin;%PATH% - + - TOOLSET: msvc-9.0,msvc-10.0,msvc-11.0,msvc-12.0 + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 + - TOOLSET: msvc-14.0 + ADDRMD: 32,64 + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 + - TOOLSET: msvc-14.1 + CXXSTD: 14,17 + ADDRMD: 32,64 + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 + - TOOLSET: msvc-14.2 + ADDRMD: 32,64 + CXXSTD: 14,17 + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 + - TOOLSET: clang-win + ADDRMD: 32,64 + CXXSTD: 14,17 + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 + - TOOLSET: gcc + CXXSTD: 03,11,14,1z + ADDPATH: C:\cygwin\bin; + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 + - TOOLSET: gcc + CXXSTD: 03,11,14,1z + ADDPATH: C:\cygwin64\bin; + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 + - TOOLSET: gcc + CXXSTD: 03,11,14,1z + ADDPATH: C:\mingw\bin; + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 + - TOOLSET: gcc + CXXSTD: 03,11,14,1z + ADDPATH: C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin; + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 + - TOOLSET: gcc + CXXSTD: 03,11,14,1z + ADDPATH: C:\mingw-w64\x86_64-7.3.0-posix-seh-rt_v5-rev0\mingw64\bin; + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 install: - set GIT_FETCH_JOBS=8 + - set BOOST_BRANCH=develop + - if "%APPVEYOR_REPO_BRANCH%" == "master" set BOOST_BRANCH=master - cd .. - - git clone -b %APPVEYOR_REPO_BRANCH% --depth 1 https://github.com/boostorg/boost.git boost-root + - git clone -b %BOOST_BRANCH% --depth 1 https://github.com/boostorg/boost.git boost-root - cd boost-root - - git submodule init tools/boostdep - git submodule init tools/build + - git submodule init tools/boostdep - git submodule init tools/boost_install - git submodule init libs/headers - git submodule init libs/config - git submodule update --jobs %GIT_FETCH_JOBS% - xcopy /s /e /q %APPVEYOR_BUILD_FOLDER% libs\integer - python tools/boostdep/depinst/depinst.py --git_args "--jobs %GIT_FETCH_JOBS%" integer - - bootstrap - - b2 headers + - cmd /c bootstrap + - b2 -d0 headers build: off test_script: - - cd libs\config\test - - ..\..\..\b2 config_info_travis_install %ARGS% - - config_info_travis - - cd ..\..\integer\test - - ..\..\..\b2 -j %NUMBER_OF_PROCESSORS% %ARGS% define=CI_SUPPRESS_KNOWN_ISSUES + - PATH=%ADDPATH%%PATH% + - if not "%CXXSTD%" == "" set CXXSTD=cxxstd=%CXXSTD% + - if not "%ADDRMD%" == "" set ADDRMD=address-model=%ADDRMD% + - b2 -j %NUMBER_OF_PROCESSORS% libs/integer/test toolset=%TOOLSET% %CXXSTD% %ADDRMD%