env: global: # The next declaration is the encrypted COVERITY_SCAN_TOKEN, created # via the "travis encrypt" command using the project repo's public key - secure: "Jw8Q8kFOfP4kiicGpZX496H0Hhi2+PzQ5wSpSJ/+e4rdQ/PnQuCvJfyAJ/k6+7BmgeS80T4sfK5xB5nX3yZG1FA4VE4kXuppJlVSwTZer0dlbbK3rvdSChBf5/Nnfjsj/Ch2SjjwhOt8zhjVutWuT2wz9RwOO39heQf3KFb4qbaVbnaBRTiGYJ+6D/28dX5foMehTohtcN1WKUZULum4cP8tqdn2+0cH+afwDwODap4v8brEW8HifS4QGDejAE7zR9fr3BaJl2m9s8art5lGzoK6Qaf2SS8WBW0MVzv2CP6zfsLUmPm3WijGUzAIPPi5GRFSy7O0GdkhHziMof1vyE3irXLSFlhg5g76lHEI2vpE6m+/PQ4I9jp7+oBT0N4SadgiXReXxewAZRrInCOstNN/mWIF0C0r1gWvPS3uM5u4PfGRa72GJ39SWmDvQqmOHOy15ZGA2eyw8piLAVkVJKvhufNfwEULITHE9xQXCV3e0YZrNIjMofuRszz7yLHEXlhwJxG++E4h0uCKnCqLTcLas8sBcRw98H/k9s8yZR3u9v0F0qqX/wus2TvfMjsfOqMm9MyqTXexpsMiODiN0a8zpdhufDlyxgr+2S96NlER7Iu0aRPBVgfDP2COPxmVW4ZwDpZYxK6iANeiYVuQGHccDHjZRyiSCG2c47EKV14=" - COVERITY_SCAN_PROJECT_NAME="saprykin/plibsys" - COVERITY_SCAN_BRANCH_PATTERN="coverity_scan" - COVERITY_SCAN_NOTIFICATION_EMAIL="saprykin.spb@gmail.com" - COVERITY_SCAN_BUILD_COMMAND="make" language: generic dist: xenial matrix: include: # Code coverage build - os: linux addons: { apt: { packages: [lcov] } } env: CC=gcc CXX=g++ GCOV=gcov USE_GCOV=1 # Linux x64 builds (GCC) - os: linux addons: { apt: { sources: ubuntu-toolchain-r-test, packages: [gcc-4.9, g++-4.9] } } env: CC=gcc-4.9 CXX=g++-4.9 ARCH=64 USE_COVERITY=1 - os: linux addons: { apt: { sources: ubuntu-toolchain-r-test, packages: [gcc-5, g++-5] } } env: CC=gcc-5 CXX=g++-5 ARCH=64 - os: linux addons: { apt: { sources: ubuntu-toolchain-r-test, packages: [gcc-6, g++-6] } } env: CC=gcc-6 CXX=g++-6 ARCH=64 - os: linux addons: { apt: { sources: ubuntu-toolchain-r-test, packages: [gcc-7, g++-7] } } env: CC=gcc-7 CXX=g++-7 ARCH=64 - os: linux addons: { apt: { sources: ubuntu-toolchain-r-test, packages: [gcc-8, g++-8] } } env: CC=gcc-8 CXX=g++-8 ARCH=64 - os: linux addons: { apt: { sources: ubuntu-toolchain-r-test, packages: [gcc-9, g++-9] } } env: CC=gcc-9 CXX=g++-9 ARCH=64 # IBM Power builds (GCC) - os: linux arch: ppc64le env: CC=gcc CXX=g++ # IBM Z builds (GCC) - os: linux arch: s390x env: CC=gcc CXX=g++ # Amazon Graviton-2 ARM - os: linux arch: arm64 env: CC=gcc CXX=g++ # Linux x86 builds (GCC) - os: linux addons: { apt: { sources: ubuntu-toolchain-r-test, packages: [gcc-4.9, g++-4.9, gcc-multilib, g++-multilib, gcc-4.9-multilib, g++-4.9-multilib, linux-libc-dev] } } env: CC=gcc-4.9 CXX=g++-4.9 ARCH=32 - os: linux addons: { apt: { sources: ubuntu-toolchain-r-test, packages: [gcc-5, g++-5, gcc-multilib, g++-multilib, gcc-5-multilib, g++-5-multilib, linux-libc-dev] } } env: CC=gcc-5 CXX=g++-5 ARCH=32 - os: linux addons: { apt: { sources: ubuntu-toolchain-r-test, packages: [gcc-6, g++-6, gcc-multilib, g++-multilib, gcc-6-multilib, g++-6-multilib, linux-libc-dev] } } env: CC=gcc-6 CXX=g++-6 ARCH=32 - os: linux addons: { apt: { sources: ubuntu-toolchain-r-test, packages: [gcc-7, g++-7, gcc-multilib, g++-multilib, gcc-7-multilib, g++-7-multilib, linux-libc-dev] } } env: CC=gcc-7 CXX=g++-7 ARCH=32 - os: linux addons: { apt: { sources: ubuntu-toolchain-r-test, packages: [gcc-8, g++-8, gcc-multilib, g++-multilib, gcc-8-multilib, g++-8-multilib, linux-libc-dev] } } env: CC=gcc-8 CXX=g++-8 ARCH=32 - os: linux addons: { apt: { sources: ubuntu-toolchain-r-test, packages: [gcc-9, g++-9, gcc-multilib, g++-multilib, gcc-9-multilib, g++-9-multilib, linux-libc-dev] } } env: CC=gcc-9 CXX=g++-9 ARCH=32 # Linux x64 builds (Clang) - os: linux addons: { apt: { sources: [ubuntu-toolchain-r-test, llvm-toolchain-trusty-3.6], packages: [clang-3.6, libc++-dev] } } env: CC=clang-3.6 CXX=clang++-3.6 - os: linux addons: { apt: { sources: [ubuntu-toolchain-r-test, llvm-toolchain-trusty-3.7], packages: [clang-3.7, libc++-dev] } } env: CC=clang-3.7 CXX=clang++-3.7 - os: linux addons: { apt: { sources: [ubuntu-toolchain-r-test, llvm-toolchain-xenial-3.8], packages: [clang-3.8, libc++-dev] } } env: CC=clang-3.8 CXX=clang++-3.8 - os: linux addons: { apt: { sources: [ubuntu-toolchain-r-test, llvm-toolchain-xenial-3.9], packages: [clang-3.9, libc++-dev] } } env: CC=clang-3.9 CXX=clang++-3.9 - os: linux addons: { apt: { sources: [ubuntu-toolchain-r-test, llvm-toolchain-xenial-4.0], packages: [clang-4.0, libc++-dev] } } env: CC=clang-4.0 CXX=clang++-4.0 - os: linux addons: { apt: { sources: [ubuntu-toolchain-r-test, llvm-toolchain-xenial-5.0], packages: [clang-5.0, libc++-dev] } } env: CC=clang-5.0 CXX=clang++-5.0 - os: linux addons: { apt: { sources: [ubuntu-toolchain-r-test, llvm-toolchain-xenial-6.0], packages: [clang-6.0, libc++-dev] } } env: CC=clang-6.0 CXX=clang++-6.0 - os: linux addons: { apt: { sources: [ubuntu-toolchain-r-test, llvm-toolchain-xenial-7], packages: [clang-7, libc++-dev] } } env: CC=clang-7 CXX=clang++-7 - os: linux addons: { apt: { sources: [ubuntu-toolchain-r-test, llvm-toolchain-xenial-8], packages: [clang-8, libc++-dev] } } env: CC=clang-8 CXX=clang++-8 # macOS builds (GCC) - os: osx osx_image: xcode10.2 env: FORMULA=gcc@6 CC=gcc-6 CXX=g++-6 - os: osx osx_image: xcode10.2 env: FORMULA=gcc@7 CC=gcc-7 CXX=g++-7 - os: osx osx_image: xcode10.2 env: FORMULA=gcc@8 CC=gcc-8 CXX=g++-8 - os: osx osx_image: xcode10.2 env: FORMULA=gcc@9 CC=gcc-9 CXX=g++-9 # macOS builds (Clang) - os: osx osx_image: xcode6.4 env: CC=clang CXX=clang++ - os: osx osx_image: xcode7.3 env: CC=clang CXX=clang++ - os: osx osx_image: xcode8.3 env: CC=clang CXX=clang++ - os: osx osx_image: xcode9.2 env: CC=clang CXX=clang++ - os: osx osx_image: xcode9.4 env: CC=clang CXX=clang++ - os: osx osx_image: xcode10.3 env: CC=clang CXX=clang++ - os: osx osx_image: xcode11.3 env: CC=clang CXX=clang++ - os: osx osx_image: xcode12 env: CC=clang CXX=clang++ branches: only: - master - coverity_scan before_install: - if [[ "${TRAVIS_BRANCH}" == "coverity_scan" ]]; then export USE_GCOV="" ; fi - if [[ "${TRAVIS_OS_NAME}" == "osx" ]] && (! [[ -z ${FORMULA+x} ]] || ! [[ -z ${USE_GCOV} ]]) ; then brew update ; fi - if [[ "${TRAVIS_OS_NAME}" == "osx" ]] && [[ "${USE_GCOV}" == "1" ]]; then brew install lcov ; fi - if [[ "${TRAVIS_OS_NAME}" == "osx" ]] && ! [[ -z ${FORMULA+x} ]]; then brew cask uninstall oclint || true; fi - if [[ "${TRAVIS_OS_NAME}" == "osx" ]] && ! [[ -z ${FORMULA+x} ]]; then brew unlink gcc || true; fi - if [[ "${TRAVIS_OS_NAME}" == "osx" ]] && ! [[ -z ${FORMULA+x} ]]; then brew unlink ${FORMULA} || true; fi - if [[ "${TRAVIS_OS_NAME}" == "osx" ]] && ! [[ -z ${FORMULA+x} ]]; then brew install ${FORMULA}; fi - if [[ "${TRAVIS_OS_NAME}" == "osx" ]] && ! [[ -z ${FORMULA+x} ]]; then brew link ${FORMULA}; fi before_script: - mkdir ./plibsys-build - cd ./plibsys-build - ${CC} --version - ${CC} -dM -E - < /dev/null - ${CXX} --version - ${CXX} -dM -E -x c++ - < /dev/null - if ! [[ -z ${ARCH+x} ]]; then export CMAKE_ARCH_PARAM=-m${ARCH} ; fi - if [[ "${USE_GCOV}" == "1" ]]; then cmake -DPLIBSYS_COVERAGE=ON -DCMAKE_C_COMPILER=${CC} -DCMAKE_CXX_COMPILER=${CXX} -DCMAKE_C_FLAGS=${CMAKE_ARCH_PARAM} -DCMAKE_CXX_FLAGS=${CMAKE_ARCH_PARAM} .. ; fi - if ! [[ "${USE_GCOV}" == "1" ]]; then cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=${CC} -DCMAKE_CXX_COMPILER=${CXX} -DCMAKE_C_FLAGS=${CMAKE_ARCH_PARAM} -DCMAKE_CXX_FLAGS=${CMAKE_ARCH_PARAM} .. ; fi - if [[ "${TRAVIS_BRANCH}" == "coverity_scan" ]] && [[ "${USE_COVERITY}" == "1" ]]; then export COVERITY_SCAN_BUILD_COMMAND_PREPEND="cov-configure --comptype gcc --compiler ${CC} --template" ; fi - if [[ "${TRAVIS_BRANCH}" == "coverity_scan" ]] && [[ "${USE_COVERITY}" == "1" ]]; then curl -s "https://scan.coverity.com/scripts/travisci_build_coverity_scan.sh" | bash || true ; fi script: - make -j 2 - if [[ "${TRAVIS_BRANCH}" != "coverity_scan" ]]; then ctest --output-on-failure -V -C Release; fi after_success: - if [[ "${USE_GCOV}" == "1" ]]; then lcov --gcov-tool ${GCOV} --directory . --capture --output-file coverage.info ; fi - if [[ "${USE_GCOV}" == "1" ]]; then bash <(curl -s https://codecov.io/bash) -x ${GCOV} ; fi