expand travis CI to more configurations

This commit is contained in:
James E. King III
2018-10-16 02:18:27 +00:00
parent 82a233bee1
commit c305a4a1e4

View File

@ -8,19 +8,18 @@
# #
# Instructions for customizing this script for your library: # Instructions for customizing this script for your library:
# #
# 1. Customize the compilers and language levels you want. # 1. Customize the compilers and language levels you want in the 'jobs'.
# 2. If you have move than include/, src/, test/, example/, examples/, # 2. If you have more than include/, src/, test/, example/, examples/, or
# benchmark/ or tools/ directories, set the environment variable DEPINST. # tools/ directories, modify your Travis CI project and add the environment
# For example if your build uses code in "bench/" and "fog/" directories: # variable DEPINST. For example if your build uses code in "bench/" and
# - DEPINST="--include bench --include fog" # "fog/" directories, then set DEPINST to the following:
# --include bench --include fog
# 3. If you want to enable Coverity Scan, you need to provide the environment # 3. If you want to enable Coverity Scan, you need to provide the environment
# variables COVERITY_SCAN_TOKEN and COVERITY_SCAN_NOTIFICATION_EMAIL in # variables COVERITY_SCAN_TOKEN and COVERITY_SCAN_NOTIFICATION_EMAIL in
# your github settings. # your github settings.
# 4. Enable pull request builds in your boostorg/<library> account. # 4. Enable pull request builds in your boostorg/<library> account.
# 5. The default language level is C++03, you can change CXXSTD to modify it.
# #
# That's it - the scripts will do everything else for you. # That's it - the scripts will do everything else for you.
#
sudo: false sudo: false
dist: trusty dist: trusty
@ -34,8 +33,6 @@ env:
# - B2_LINK=link=shared,static # - B2_LINK=link=shared,static
# - B2_THREADING=threading=multi,single # - B2_THREADING=threading=multi,single
- B2_VARIANT=variant=release,debug - B2_VARIANT=variant=release,debug
# - CXXSTD=03
# - DEPINST="--include other"
install: install:
- git clone https://github.com/jeking3/boost-ci.git boost-ci - git clone https://github.com/jeking3/boost-ci.git boost-ci
@ -58,46 +55,62 @@ script:
- cd $BOOST_ROOT/libs/$SELF - cd $BOOST_ROOT/libs/$SELF
- ci/travis/build.sh - ci/travis/build.sh
#
# Default toolsets in Ubuntu
#
# trusty xenial bionic
# 14.04 16.04 18.04
# ------ ------ ------
# clang 3.4 3.8 6.0
# gcc 4.8.2 5.3.1 7.3.0
#
anchors:
clang-34: &clang-34 { apt: { packages: [ "clang-3.4" ], sources: [ "llvm-toolchain-trusty-3.4" ] } }
clang-38: &clang-38 { apt: { packages: [ "clang-3.8" ], sources: [ "llvm-toolchain-trusty-3.8" ] } }
clang-4: &clang-4 { apt: { packages: [ "clang-4.0" ], sources: [ "llvm-toolchain-trusty-4.0" ] } }
clang-5: &clang-5 { apt: { packages: [ "clang-5.0" ], sources: [ "llvm-toolchain-trusty-5.0" ] } }
clang-6: &clang-6 { apt: { packages: [ "clang-6.0",
"libstdc++-7-dev",
"valgrind" ], sources: [ "llvm-toolchain-trusty-6.0",
"ubuntu-toolchain-r-test" ] } }
gcc-44: &gcc-44 { apt: { packages: [ "g++-4.4" ], sources: [ "ubuntu-toolchain-r-test" ] } }
gcc-46: &gcc-46 { apt: { packages: [ "g++-4.6" ], sources: [ "ubuntu-toolchain-r-test" ] } }
gcc-48: &gcc-48 { apt: { packages: [ "g++-4.8" ], sources: [ "ubuntu-toolchain-r-test" ] } }
gcc-5: &gcc-5 { apt: { packages: [ "g++-5" ], sources: [ "ubuntu-toolchain-r-test" ] } }
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" ] } }
jobs: jobs:
include: include:
#################### Jobs to run on every pull request #################### # libstdc++
- { os: "linux", env: [ "TOOLSET=gcc-4.4", "CXXSTD=98,0x" ], addons: *gcc-44 }
- { os: "linux", env: [ "TOOLSET=gcc-4.6", "CXXSTD=03,0x" ], addons: *gcc-46 }
- { os: "linux", env: [ "TOOLSET=gcc-4.8", "CXXSTD=03,11" ], addons: *gcc-48 }
- { os: "linux", env: [ "TOOLSET=gcc-5", "CXXSTD=03,11" ], addons: *gcc-5 }
- { os: "linux", env: [ "TOOLSET=gcc-6", "CXXSTD=03,11,14" ], addons: *gcc-6 }
- { os: "linux", env: [ "TOOLSET=gcc-7", "CXXSTD=03,11,14,17" ], addons: *gcc-7 }
- { os: "linux", env: [ "TOOLSET=gcc-8", "CXXSTD=03,11,14,17,2a" ], addons: *gcc-8 }
- { os: "linux", env: [ "TOOLSET=clang-3.4", "CXXSTD=03,11,14" ], addons: *clang-34 }
- { os: "linux", env: [ "TOOLSET=clang-3.8", "CXXSTD=03,11,14" ], addons: *clang-38 }
- { os: "linux", env: [ "TOOLSET=clang-4.0", "CXXSTD=03,11,14" ], addons: *clang-4 }
- { os: "linux", env: [ "TOOLSET=clang-5.0", "CXXSTD=03,11,14,17" ], addons: *clang-5 }
- { os: "linux", env: [ "TOOLSET=clang-6.0", "CXXSTD=03,11,14,17,2a" ], addons: *clang-6 }
# libc++
# the rvm environment on osx is taking over basic commands like "cd" and breaking things
# - { os: "osx" , env: [ "COMMENT=libc++",
# "TOOLSET=clang", "CXXSTD=03,11,14" ] }
- os: linux - os: linux
env: env:
- COMMENT="C++03" - COMMENT=codecov.io
- TOOLSET=gcc,gcc-7,clang - TOOLSET=gcc-7
addons: addons: *gcc-7
apt: script:
packages: - pushd /tmp && git clone https://github.com/linux-test-project/lcov.git && export PATH=/tmp/lcov/bin:$PATH && which lcov && lcov --version && popd
- g++-7 - cd $BOOST_ROOT/libs/$SELF
sources: - ci/travis/codecov.sh
- ubuntu-toolchain-r-test
- os: linux
env:
- COMMENT="C++11"
- TOOLSET=gcc,gcc-7,clang
- CXXSTD=11
addons:
apt:
packages:
- g++-7
sources:
- ubuntu-toolchain-r-test
- os: linux
env:
- COMMENT=valgrind
- TOOLSET=clang
- B2_VARIANT=variant=debug
- TESTFLAGS=testing.launcher=valgrind
- VALGRIND_OPTS=--error-exitcode=1
addons:
apt:
packages:
- clang-5.0
- libstdc++-7-dev
- valgrind
sources:
- llvm-toolchain-trusty-5.0
- ubuntu-toolchain-r-test
- os: linux - os: linux
env: env:
@ -108,43 +121,23 @@ jobs:
- os: linux - os: linux
env: env:
- COMMENT=UBSAN - COMMENT=ubsan
- B2_VARIANT=variant=debug - B2_VARIANT=variant=debug
- TOOLSET=gcc-7 - TOOLSET=gcc-8
- CXXFLAGS="cxxflags=-fno-omit-frame-pointer cxxflags=-fsanitize=undefined cxxflags=-fno-sanitize-recover=undefined" - CXXFLAGS="cxxflags=-fno-omit-frame-pointer cxxflags=-fsanitize=undefined cxxflags=-fno-sanitize-recover=undefined"
- LINKFLAGS="linkflags=-fsanitize=undefined linkflags=-fno-sanitize-recover=undefined linkflags=-fuse-ld=gold" - LINKFLAGS="linkflags=-fsanitize=undefined linkflags=-fno-sanitize-recover=undefined linkflags=-fuse-ld=gold"
- UBSAN_OPTIONS=print_stacktrace=1 - UBSAN_OPTIONS=print_stacktrace=1
addons: addons: *gcc-8
apt:
packages:
- g++-7
sources:
- ubuntu-toolchain-r-test
- os: linux - os: linux
env: env:
- COMMENT=CodeCov - COMMENT=valgrind
- TOOLSET=gcc-7 - TOOLSET=clang-6.0
addons: - CXXSTD=03
apt: - B2_VARIANT=variant=debug
packages: - TESTFLAGS=testing.launcher=valgrind
- gcc-7 - VALGRIND_OPTS=--error-exitcode=1
- g++-7 addons: *clang-6
sources:
- ubuntu-toolchain-r-test
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
# does not work with sourced install shell yet: see
# https://travis-ci.org/jeking3/tokenizer/jobs/384903189
# for a typical failure
# - os: osx
# osx_image: xcode9
# env:
# - TOOLSET=clang
# - CXXSTD=03,11
#################### Jobs to run on pushes to master, develop ################### #################### Jobs to run on pushes to master, develop ###################
@ -153,7 +146,8 @@ jobs:
if: (env(COVERITY_SCAN_NOTIFICATION_EMAIL) IS present) AND (branch IN (develop, master)) AND (type IN (cron, push)) if: (env(COVERITY_SCAN_NOTIFICATION_EMAIL) IS present) AND (branch IN (develop, master)) AND (type IN (cron, push))
env: env:
- COMMENT="Coverity Scan" - COMMENT="Coverity Scan"
- TOOLSET=gcc - TOOLSET=gcc-7
addons: *gcc-7
script: script:
- cd $BOOST_ROOT/libs/$SELF - cd $BOOST_ROOT/libs/$SELF
- ci/travis/coverity.sh - ci/travis/coverity.sh