diff --git a/.jenkins.d/10-build.sh b/.jenkins.d/10-build.sh index fcf207c..2ecdfdc 100755 --- a/.jenkins.d/10-build.sh +++ b/.jenkins.d/10-build.sh @@ -10,6 +10,12 @@ git submodule init git submodule sync git submodule update +if [[ $JOB_NAME == *"code-coverage" ]]; then + COVERAGE="--with-coverage" +elif [[ -z $DISABLE_ASAN ]]; then + ASAN="--with-sanitizer=address" +fi + # Cleanup sudo env "PATH=$PATH" ./waf --color=yes distclean @@ -30,12 +36,7 @@ if [[ $JOB_NAME != *"code-coverage" && $JOB_NAME != *"limited-build" ]]; then fi # Configure/build in debug mode with tests -if [[ $JOB_NAME == *"code-coverage" ]]; then - COVERAGE="--with-coverage" -elif [[ -n $BUILD_WITH_ASAN || -z $TRAVIS ]]; then - ASAN="--with-sanitizer=address" -fi -./waf --color=yes configure --debug --with-tests $COVERAGE $ASAN +./waf --color=yes configure --debug --with-tests $ASAN $COVERAGE ./waf --color=yes build -j${WAF_JOBS:-1} # (tests will be run against debug version) diff --git a/.travis.yml b/.travis.yml index 560b094..0db4659 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,6 @@ +language: cpp +dist: trusty sudo: required -language: generic env: global: - JOB_NAME=limited-build @@ -8,30 +9,93 @@ env: matrix: include: # Linux/gcc + # https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test/+packages - os: linux - dist: trusty - env: - - CXX=g++-4.8 - - NODE_LABELS="Linux Ubuntu Ubuntu-14.04" - - BUILD_WITH_ASAN=yes + env: COMPILER=g++-4.8 + - os: linux + env: COMPILER=g++-4.9 + addons: + apt: + sources: ubuntu-toolchain-r-test + packages: g++-4.9 + - os: linux + env: COMPILER=g++-5 + addons: + apt: + sources: ubuntu-toolchain-r-test + packages: g++-5 + - os: linux + env: COMPILER=g++-6 + addons: + apt: + sources: ubuntu-toolchain-r-test + packages: g++-6 + - os: linux + env: COMPILER=g++-7 + addons: + apt: + sources: ubuntu-toolchain-r-test + packages: g++-7 # Linux/clang + # https://apt.llvm.org/ - os: linux - dist: trusty - env: - - CXX=clang++ - - NODE_LABELS="Linux Ubuntu Ubuntu-14.04" - - BUILD_WITH_ASAN=yes + env: COMPILER=clang++-3.5 + addons: + apt: + packages: clang-3.5 + - os: linux + env: COMPILER=clang++-3.6 + addons: + apt: + packages: clang-3.6 + - os: linux + env: COMPILER=clang++-3.7 DISABLE_ASAN=yes + addons: + apt: + sources: ["llvm-toolchain-precise-3.7", "ubuntu-toolchain-r-test"] + packages: clang-3.7 + - os: linux + env: COMPILER=clang++-3.8 + addons: + apt: + sources: ["llvm-toolchain-precise-3.8", "ubuntu-toolchain-r-test"] + packages: clang-3.8 + - os: linux + env: COMPILER=clang++-3.9 DISABLE_ASAN=yes + addons: + apt: + sources: ["llvm-toolchain-trusty-3.9", "ubuntu-toolchain-r-test"] + packages: clang-3.9 + - os: linux + env: COMPILER=clang++-4.0 + addons: + apt: + sources: ["llvm-toolchain-trusty-4.0", "ubuntu-toolchain-r-test"] + packages: clang-4.0 + - os: linux + env: COMPILER=clang++-5.0 + addons: + apt: + sources: ["llvm-toolchain-trusty-5.0", "ubuntu-toolchain-r-test"] + packages: clang-5.0 # macOS/clang # https://docs.travis-ci.com/user/osx-ci-environment/#OS-X-Version + - os: osx + osx_image: xcode7.3 + env: OSX_VERSION=10.11 - os: osx osx_image: xcode8.3 - env: - - NODE_LABELS="OSX OSX-10.12" - - BUILD_WITH_ASAN=yes + env: OSX_VERSION=10.12 + - os: osx + osx_image: xcode9.2 + env: OSX_VERSION=10.12 before_script: + - if [[ ${TRAVIS_OS_NAME} == linux ]]; then export NODE_LABELS="Linux Ubuntu Ubuntu-14.04"; fi + - if [[ ${TRAVIS_OS_NAME} == osx ]]; then export NODE_LABELS="OSX OSX-${OSX_VERSION}"; fi + - if [[ -n ${COMPILER} ]]; then export CXX=${COMPILER}; fi - ${CXX:-c++} --version - python --version