mirror of
https://github.com/boostorg/gil.git
synced 2026-01-19 04:12:11 +00:00
The build variants enable group of checks offered by clang
UndefinedBehaviorSanitizer detector.
Add sanitizers suppression file in .ci/blacklist.supp based on
copy of the file from Boost.Beast.
Update Travis CI:
- Add .ci/build-and-test.sh script as handy proxy for b2 command.
- Add build jobs for each of the three new UBSan variants.
- Display COMPILER and VARIANT first as these two are most important
details while inspecting the build matrix
(TOOLSET can be derived from COMPILER).
195 lines
4.8 KiB
YAML
195 lines
4.8 KiB
YAML
# Copyright 2016 Peter Dimov
|
|
# 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)
|
|
language: cpp
|
|
|
|
sudo: false
|
|
|
|
os:
|
|
- linux
|
|
- osx
|
|
|
|
branches:
|
|
only:
|
|
- master
|
|
- develop
|
|
- doc
|
|
- ci
|
|
|
|
env:
|
|
global:
|
|
- secure: "UHit2f6Hq2pkHvx8rfrQvFacYiQKVO3vrCbNuDi/VSAIzQjRnqCqE06y4vpXLMsXf62TvBeCBStIuI8g+HP8B+f39oGb/9Om+yIgN/yes47R4sLFKFbRiOS6sfCIefJp7Kx7GSFf81xWxStpIU4QaSsk8Dlt5xyurTWXFSde+lQ="
|
|
matrix:
|
|
- BOGUS_JOB=true
|
|
|
|
matrix:
|
|
exclude:
|
|
- env: BOGUS_JOB=true
|
|
include:
|
|
- os: linux
|
|
env: COMPILER=g++-5 VARIANT=debug TOOLSET=gcc CXXSTD=c++11
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- g++-5
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
|
|
- os: linux
|
|
env: COMPILER=g++-5 VARIANT=release TOOLSET=gcc CXXSTD=c++11
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- g++-5
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
|
|
- os: linux
|
|
env: COMPILER=g++-6 VARIANT=debug TOOLSET=gcc CXXSTD=c++11
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- g++-6
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
|
|
- os: linux
|
|
env: COMPILER=g++-6 VARIANT=release TOOLSET=gcc CXXSTD=c++11
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- g++-6
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
|
|
- os: linux
|
|
env: COMPILER=g++-7 VARIANT=debug TOOLSET=gcc CXXSTD=c++11
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- g++-7
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
|
|
- os: linux
|
|
env: COMPILER=g++-7 VARIANT=release TOOLSET=gcc CXXSTD=c++11
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- g++-7
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
|
|
- os: linux
|
|
env: COMPILER=clang++-3.9 VARIANT=debug TOOLSET=clang CXXSTD=c++11
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- clang-3.9
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
- llvm-toolchain-precise-3.9
|
|
|
|
- os: linux
|
|
env: COMPILER=clang++-3.9 VARIANT=release TOOLSET=clang CXXSTD=c++11
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- clang-3.9
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
- llvm-toolchain-precise-3.9
|
|
|
|
- os: linux
|
|
env: COMPILER=clang++-5.0 VARIANT=ubsan_integer TOOLSET=clang CXXSTD=c++11 UBSAN_OPTIONS='print_stacktrace=1'
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- clang-5.0
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
- llvm-toolchain-trusty-5.0
|
|
|
|
- os: linux
|
|
env: COMPILER=clang++-5.0 VARIANT=ubsan_undefined TOOLSET=clang CXXSTD=c++11 UBSAN_OPTIONS='print_stacktrace=1'
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- clang-5.0
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
- llvm-toolchain-trusty-5.0
|
|
|
|
- os: linux
|
|
env: COMPILER=clang++-5.0 VARIANT=ubsan_nullability TOOLSET=clang CXXSTD=c++11 UBSAN_OPTIONS='print_stacktrace=1'
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- clang-5.0
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
- llvm-toolchain-trusty-5.0
|
|
|
|
- os: osx
|
|
env: COMPILER=clang++ VARIANT=debug TOOLSET=clang CXXSTD=c++11
|
|
|
|
- os: osx
|
|
env: COMPILER=clang++ VARIANT=release TOOLSET=clang CXXSTD=c++11
|
|
|
|
- env: DOC=1
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- doxygen
|
|
|
|
install:
|
|
- |-
|
|
if [ "$DOC" ]; then
|
|
pip install --user sphinx
|
|
fi
|
|
- cd ..
|
|
- git clone -b master --depth 1 https://github.com/boostorg/boost.git boost-root
|
|
- cd boost-root
|
|
- git submodule update --init tools/build
|
|
- git submodule update --init libs/config
|
|
- git submodule update --init tools/boostdep
|
|
- cp -r $TRAVIS_BUILD_DIR/* libs/gil
|
|
- cp -r $TRAVIS_BUILD_DIR/.ci libs/gil
|
|
- python tools/boostdep/depinst/depinst.py gil
|
|
- ./bootstrap.sh
|
|
- ./b2 headers
|
|
|
|
script:
|
|
- |-
|
|
if [ "$DOC" ]; then
|
|
echo "using doxygen ;" > ~/user-config.jam
|
|
./b2 libs/gil/doc
|
|
fi
|
|
- |-
|
|
echo "using $TOOLSET : : $COMPILER : <cxxflags>-std=$CXXSTD ;" > ~/user-config.jam
|
|
- travis_retry libs/gil/.ci/build-and-test.sh
|
|
|
|
after_success:
|
|
# Upload docs only when building upstream.
|
|
- |-
|
|
if [ "$DOC" -a \
|
|
"$TRAVIS_REPO_SLUG" = "boostorg/gil" -a \
|
|
"$TRAVIS_PULL_REQUEST" = "false" ]; then
|
|
export GH_TOKEN
|
|
cd libs/gil
|
|
.ci/upload_docs.sh
|
|
fi
|
|
|
|
notifications:
|
|
email:
|
|
on_success: always
|
|
webhooks:
|
|
urls:
|
|
- https://webhooks.gitter.im/e/f59b626f2ed08f3d30ab
|
|
# options: [always|never|change]
|
|
on_success: change # default: always
|
|
on_failure: always # default: always
|
|
on_start: change # default: never
|
|
on_cancel: always # default: always
|
|
on_error: always # default: always
|