From 832731f5ab57a9b9cb03847fcd31b001fa9314bc Mon Sep 17 00:00:00 2001 From: "James E. King III" Date: Mon, 1 Jul 2019 11:57:44 -0400 Subject: [PATCH] Update CI --- .travis.yml | 102 ++++++++++++++++++++++++++++++++++++++------------- appveyor.yml | 25 ++++++++++++- 2 files changed, 99 insertions(+), 28 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9d42234..2482894 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,7 +18,9 @@ # 3. If you want to enable Coverity Scan, you need to provide the environment # variables COVERITY_SCAN_TOKEN and COVERITY_SCAN_NOTIFICATION_EMAIL in # your github settings. -# 4. Enable pull request builds in your boostorg/ account. +# 4. If you want to enable a big-endian build, you need to uncomment the +# big-endian build job. +# 5. Enable pull request builds in your boostorg/ account. # # That's it - the scripts will do everything else for you. @@ -28,11 +30,10 @@ language: cpp env: global: # see: http://www.boost.org/build/doc/html/bbv2/overview/invocation.html#bbv2.overview.invocation.properties - # to use the default for a given environment, comment it out; recommend you build debug and release however.. # - B2_ADDRESS_MODEL=address-model=64,32 # - B2_LINK=link=shared,static # - B2_THREADING=threading=multi,single - - B2_VARIANT=variant=release,debug + - B2_VARIANT=variant=release install: - git clone https://github.com/boostorg/boost-ci.git boost-ci @@ -45,11 +46,19 @@ addons: - binutils-gold - gdb - libc6-dbg + - qemu-user-static + +services: + - docker branches: only: - - develop - master + - develop + - /bugfix\/.*/ + - /feature\/.*/ + - /fix\/.*/ + - /pr\/.*/ script: - cd $BOOST_ROOT/libs/$SELF @@ -91,10 +100,12 @@ anchors: "libstdc++-8-dev" ], sources: [ "llvm-toolchain-xenial-8", "ubuntu-toolchain-r-test" ] } } gcc-48: &gcc-48 { apt: { packages: [ "g++-4.8" ] } } + gcc-49: &gcc-49 { apt: { packages: [ "g++-4.9" ], sources: [ "ubuntu-toolchain-r-test" ] } } gcc-5: &gcc-5 { apt: { packages: [ "g++-5" ] } } gcc-6: &gcc-6 { apt: { packages: [ "g++-6" ], sources: [ "ubuntu-toolchain-r-test" ] } } gcc-7: &gcc-7 { apt: { packages: [ "g++-7" ], sources: [ "ubuntu-toolchain-r-test" ] } } gcc-8: &gcc-8 { apt: { packages: [ "g++-8" ], sources: [ "ubuntu-toolchain-r-test" ] } } + gcc-9: &gcc-9 { apt: { packages: [ "g++-9" ], sources: [ "ubuntu-toolchain-r-test" ] } } jobs: allow_failures: @@ -103,54 +114,86 @@ jobs: include: # libstdc++ - - { os: "linux", env: [ "B2_TOOLSET=gcc-4.8", "B2_CXXSTD=03,11" ], addons: *gcc-48 } - - { os: "linux", env: [ "B2_TOOLSET=gcc-5", "B2_CXXSTD=11" ], addons: *gcc-5 } + - { os: "linux", dist: "trusty", # xenial has libstdc++ from gcc 5.4.0 with newer ABI + env: [ "B2_TOOLSET=gcc-4.8", "B2_CXXSTD=03,11" ], addons: *gcc-48 } + - { os: "linux", dist: "trusty", # xenial has libstdc++ from gcc 5.4.0 with newer ABI + env: [ "B2_TOOLSET=gcc-4.9", "B2_CXXSTD=03,11" ], addons: *gcc-49 } + - { os: "linux", env: [ "B2_TOOLSET=gcc-5", "B2_CXXSTD=03,11" ], addons: *gcc-5 } - { os: "linux", env: [ "B2_TOOLSET=gcc-6", "B2_CXXSTD=11,14" ], addons: *gcc-6 } - - { os: "linux", env: [ "B2_TOOLSET=gcc-7", "B2_CXXSTD=11,14,17" ], addons: *gcc-7 } - - { os: "linux", env: [ "B2_TOOLSET=gcc-8", "B2_CXXSTD=14,17,2a" ], addons: *gcc-8 } - - { os: "linux", env: [ "B2_TOOLSET=clang-3.8", "B2_CXXSTD=03,11,14" ], addons: *clang-38 } + - { os: "linux", env: [ "B2_TOOLSET=gcc-7", "B2_CXXSTD=14,17" ], addons: *gcc-7 } + - { os: "linux", env: [ "B2_TOOLSET=gcc-8", "B2_CXXSTD=17,2a" ], addons: *gcc-8 } + - { os: "linux", env: [ "B2_TOOLSET=gcc-9", "B2_CXXSTD=17,2a" ], addons: *gcc-9 } + - { os: "linux", dist: "trusty", # xenial has libstdc++ from gcc 5.4.0 with newer ABI + env: [ "B2_TOOLSET=clang-3.8", "B2_CXXSTD=03,11" ], addons: *clang-38 } - { os: "linux", env: [ "B2_TOOLSET=clang-4.0", "B2_CXXSTD=11,14" ], addons: *clang-4 } - - { os: "linux", env: [ "B2_TOOLSET=clang-5.0", "B2_CXXSTD=11,14,17" ], addons: *clang-5 } - - { os: "linux", env: [ "B2_TOOLSET=clang-6.0", "B2_CXXSTD=14,17,2a" ], addons: *clang-6 } - - { os: "linux", env: [ "B2_TOOLSET=clang-7", "B2_CXXSTD=14,17,2a" ], addons: *clang-7 } - - { os: "linux", env: [ "B2_TOOLSET=clang-8", "B2_CXXSTD=14,17,2a" ], addons: *clang-8 } + - { os: "linux", env: [ "B2_TOOLSET=clang-5.0", "B2_CXXSTD=11,14" ], addons: *clang-5 } + - { os: "linux", env: [ "B2_TOOLSET=clang-6.0", "B2_CXXSTD=14,17" ], addons: *clang-6 } + - { os: "linux", env: [ "B2_TOOLSET=clang-7", "B2_CXXSTD=17,2a" ], addons: *clang-7 } + - { os: "linux", env: [ "B2_TOOLSET=clang-8", "B2_CXXSTD=17,2a" ], addons: *clang-8 } # libc++ - - { os: "linux", env: [ "B2_TOOLSET=clang-6.0", "B2_CXXSTD=03,11,14,17,2a", + - { os: "linux", env: [ "B2_TOOLSET=clang-6.0", "B2_CXXSTD=03,11,14", "B2_CXXFLAGS=-stdlib=libc++" ], addons: *clang-6 } - { os: "osx" , env: [ "B2_TOOLSET=clang", "B2_CXXSTD=03,11,17" ] } - # to enable Intel ICC define INTEL_ICC_SERIAL_NUMBER and the following: + # to enable Intel ICC define INTEL_ICC_SERIAL_NUMBER and the following (under development): # - { os: "linux", env: [ "B2_TOOLSET=intel-linux", "B2_CXXSTD=11,14,17" ], addons: *gcc-7, # script: cd $BOOST_ROOT/libs/$SELF && ci/travis/intelicc.sh } + # uncomment to enable a big-endian build job, just note that it is 5-10 times slower + # than a regular build and travis has a 50 minute time limit per job + # - os: linux + # env: + # - COMMENT=big-endian + # - B2_CXXSTD=03 + # - B2_TOOLSET=gcc + # - B2_DEFINES="define=BOOST_NO_STRESS_TEST=1" + # - BDDE_OS=red + # - BDDE_ARCH=ppc64 + # script: + # - cd $BOOST_ROOT/libs/$SELF + # - ci/travis/bdde.sh + - os: linux env: - COMMENT=codecov.io - - B2_TOOLSET=gcc-7 + - B2_CXXSTD=03,11 + - B2_TOOLSET=gcc-8 - B2_DEFINES="define=BOOST_NO_STRESS_TEST=1" - addons: *gcc-7 + addons: *gcc-8 script: - - pushd /tmp && git clone https://github.com/linux-test-project/lcov.git && export PATH=/tmp/lcov/bin:$PATH && which lcov && lcov --version && popd - cd $BOOST_ROOT/libs/$SELF - ci/travis/codecov.sh - os: linux env: - - COMMENT=cppcheck - script: - - cd $BOOST_ROOT/libs/$SELF - - ci/travis/cppcheck.sh + - COMMENT=asan + - B2_VARIANT=variant=debug + - B2_TOOLSET=gcc-8 + - B2_CXXSTD=03,11,14 + - B2_CXXFLAGS="address-sanitizer=norecover" + - B2_DEFINES="define=BOOST_NO_STRESS_TEST=1" + addons: *gcc-8 + + - os: linux + env: + - COMMENT=tsan + - B2_VARIANT=variant=debug + - B2_TOOLSET=gcc-8 + - B2_CXXSTD=03,11,14 + - B2_CXXFLAGS="thread-sanitizer=norecover" + - B2_DEFINES="define=BOOST_NO_STRESS_TEST=1" + addons: *gcc-8 - os: linux env: - COMMENT=ubsan - B2_VARIANT=variant=debug - B2_TOOLSET=gcc-8 - - B2_CXXSTD=03,11,14,17,2a + - B2_CXXSTD=03,11,14 + - B2_CXXFLAGS="undefined-sanitizer=norecover" - B2_DEFINES="define=BOOST_NO_STRESS_TEST=1" - - B2_CXXFLAGS="cxxflags=-fno-omit-frame-pointer cxxflags=-fsanitize=undefined cxxflags=-fno-sanitize-recover=undefined" - - B2_LINKFLAGS="linkflags=-fsanitize=undefined linkflags=-fno-sanitize-recover=undefined linkflags=-fuse-ld=gold" + - B2_LINKFLAGS="linkflags=-fuse-ld=gold" - UBSAN_OPTIONS=print_stacktrace=1 addons: *gcc-8 @@ -158,7 +201,7 @@ jobs: env: - COMMENT=valgrind - B2_TOOLSET=clang-6.0 - - B2_CXXSTD=03,11,14,17,2a + - B2_CXXSTD=03,11,14 - B2_DEFINES="define=BOOST_NO_STRESS_TEST=1" - B2_VARIANT=variant=debug - B2_TESTFLAGS=testing.launcher=valgrind @@ -168,6 +211,13 @@ jobs: - cd $BOOST_ROOT/libs/$SELF - ci/travis/valgrind.sh + # - os: linux + # env: + # - COMMENT=cppcheck + # script: + # - cd $BOOST_ROOT/libs/$SELF + # - ci/travis/cppcheck.sh + #################### Jobs to run on pushes to master, develop ################### # Coverity Scan diff --git a/appveyor.yml b/appveyor.yml index cd383b6..ab75949 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -25,8 +25,12 @@ shallow_clone: true branches: only: - - develop - master + - develop + - /bugfix\/.*/ + - /feature\/.*/ + - /fix\/.*/ + - /pr\/.*/ matrix: # Adding MAYFAIL to any matrix job allows it to fail but the build stays green: @@ -42,9 +46,16 @@ environment: # B2_ADDRESS_MODEL: address-model=64,32 # B2_LINK: link=shared,static # B2_THREADING: threading=multi,single - B2_VARIANT: variant=release,debug + B2_VARIANT: variant=release matrix: + - FLAVOR: Visual Studio 2019 + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 + B2_ADDRESS_MODEL: address-model=64 + B2_CXXFLAGS: cxxflags=-permissive- + B2_CXXSTD: latest # 2a + B2_TOOLSET: msvc-14.2 + - FLAVOR: Visual Studio 2017 C++2a Strict APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 B2_ADDRESS_MODEL: address-model=64 @@ -57,16 +68,24 @@ environment: B2_ADDRESS_MODEL: address-model=64 B2_CXXSTD: 17 B2_TOOLSET: msvc-14.1 + B2_VARIANT: variant=debug - FLAVOR: Visual Studio 2017 C++14 (Default) APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 B2_ADDRESS_MODEL: address-model=64,32 B2_TOOLSET: msvc-14.1 + - FLAVOR: clang-cl + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 + B2_ADDRESS_MODEL: address-model=64 + B2_CXXSTD: 11 + B2_TOOLSET: clang-win + - FLAVOR: Visual Studio 2015 C++14 (Default) APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 B2_ADDRESS_MODEL: address-model=64,32 B2_TOOLSET: msvc-14.0 + B2_VARIANT: variant=debug - FLAVOR: Visual Studio 2010, 2012, 2013 APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 @@ -83,6 +102,7 @@ environment: B2_DEFINES: define=_POSIX_C_SOURCE=200112L B2_THREADING: threadapi=pthread B2_TOOLSET: gcc + B2_VARIANT: variant=debug - FLAVOR: cygwin (64-bit) APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 @@ -100,6 +120,7 @@ environment: B2_ADDRESS_MODEL: address-model=32 B2_CXXSTD: 03,11 SCRIPT: ci\appveyor\mingw.bat + B2_VARIANT: variant=debug - FLAVOR: mingw64 APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017