Cleanup .travis.yml a bit

Signed-off-by: Jeroen Koekkoek <jeroen@koekkoek.nl>
This commit is contained in:
Jeroen Koekkoek 2020-07-29 19:35:08 +02:00
parent b9c2553a7b
commit 8445394e2a
2 changed files with 78 additions and 71 deletions

View file

@ -37,54 +37,61 @@ submit_to_coverity_scan: &submit_to_coverity_scan
"https://scan.coverity.com/builds"; "https://scan.coverity.com/builds";
fi fi
linux_gcc8: &linux_gcc8 ubuntu1804_gcc10: &ubuntu1804_gcc10
os: linux os: linux
dist: xenial dist: bionic
compiler: gcc compiler: gcc
addons: addons:
apt: apt:
update: true update: true
sources: [ ubuntu-toolchain-r-test ] sources:
packages: [ gcc-8, g++-8 ] - sourceline: 'ppa:ubuntu-toolchain-r/test'
packages: [ gcc-10 g++-10 ]
before_install: before_install:
- eval "export CC=gcc-8" - eval "export CC=gcc-10 CXX=g++-10"
- eval "export CXX=g++-8"
- eval "export COV_COMPTYPE=gcc COV_PLATFORM=linux64" - eval "export COV_COMPTYPE=gcc COV_PLATFORM=linux64"
- eval "export BUILD_TOOL_OPTIONS='-j 4'"
- eval "export GENERATOR='Unix Makefiles'"
install: install:
- *install_coverity - *install_coverity
- pip install conan --upgrade --user - pip install conan --upgrade --user
linux_clang: &linux_clang ubuntu1804_clang10: &ubuntu1804_clang10
os: linux os: linux
dist: xenial dist: bionic
compiler: clang compiler: clang
addons: addons:
apt: apt:
update: true update: true
packages: [ ] sources:
- sourceline: 'deb https://apt.llvm.org/bionic llvm-toolchain-bionic-10 main'
key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key'
packages: [ clang-10 clang++-10 ]
before_install: before_install:
- eval "export CC=clang" - eval "export CC=clang-10 CXX=clang++-10"
- eval "export CXX=clang++"
- eval "export COV_COMPTYPE=clang COV_PLATFORM=linux64" - eval "export COV_COMPTYPE=clang COV_PLATFORM=linux64"
- eval "export BUILD_TOOL_OPTIONS='-j 4'"
- eval "export GENERATOR='Unix Makefiles'"
install: install:
- pip install conan --upgrade --user - pip install conan --upgrade --user
osx_xcode: &osx_xcode macos1015_xcode11_6: &macos1015_xcode11_6
os: osx os: osx
osx_image: xcode11.1 osx_image: xcode11.6
compiler: clang compiler: clang
addons: addons:
homebrew: homebrew:
packages: [ python3 ] packages: [ python3 ]
before_install: before_install:
- eval "export CC=clang" - eval "export CC=clang CXX=clang++"
- eval "export CXX=clang++"
- eval "export COV_COMPTYPE=clang COV_PLATFORM=macOSX" - eval "export COV_COMPTYPE=clang COV_PLATFORM=macOSX"
- eval "export BUILD_TOOL_OPTIONS='-j 4'"
- eval "export GENERATOR='Unix Makefiles'"
- eval "export PATH=\"${PATH}:$(python3 -m site --user-base)/bin\"" - eval "export PATH=\"${PATH}:$(python3 -m site --user-base)/bin\""
install: install:
- python3 -m pip install conan --upgrade --user - python3 -m pip install conan --upgrade --user
windows_vs2017: &windows_vs2017 windows1809_vs2017: &windows1809_vs2017
os: windows os: windows
# Conan will automatically determine the best compiler for a given platform # Conan will automatically determine the best compiler for a given platform
# based on educated guesses. The first check is based on the CC and CXX # based on educated guesses. The first check is based on the CC and CXX
@ -109,9 +116,15 @@ windows_vs2017: &windows_vs2017
before_install: before_install:
- eval "unset COVERITY_SCAN_TOKEN" - eval "unset COVERITY_SCAN_TOKEN"
- eval "unset COVERITY_SCAN_EMAIL" - eval "unset COVERITY_SCAN_EMAIL"
- eval "unset CC" - eval "unset CC CXX"
- eval "unset CXX"
- eval "export COV_COMPTYPE=msvc COV_PLATFORM=win64" - eval "export COV_COMPTYPE=msvc COV_PLATFORM=win64"
- eval "export BUILD_TOOL_OPTIONS='-nologo -verbosity:minimal -maxcpucount -p:CL_MPCount=2'"
- |
if [ "${ARCH}" = "x86_64" ]; then
eval "export GENERATOR='Visual Studio 15 2017 Win64'"
else
eval "export GENERATOR='Visual Studio 15 2017'"
fi
- JAVA_HOME=$(find "/c/Program Files/Android/jdk/" -name "*openjdk*" | sort | head -n 1) - JAVA_HOME=$(find "/c/Program Files/Android/jdk/" -name "*openjdk*" | sort | head -n 1)
- export JAVA_HOME - export JAVA_HOME
- export PATH="${PATH}:${JAVA_HOME}/bin" - export PATH="${PATH}:${JAVA_HOME}/bin"
@ -129,35 +142,35 @@ windows_vs2017: &windows_vs2017
jobs: jobs:
include: include:
- <<: *linux_gcc8 - <<: *ubuntu1804_gcc10
env: [ ARCH=x86_64, ASAN=none, BUILD_TYPE=Debug, SSL=YES, SECURITY=YES, LIFESPAN=YES, DEADLINE=YES, GENERATOR="Unix Makefiles", COVERITY_SCAN=true ] env: [ ARCH=x86_64, BUILD_TYPE=Debug, SSL=YES, SECURITY=YES, LIFESPAN=YES, DEADLINE=YES, COVERITY_SCAN=true ]
if: type = cron if: type = cron
- <<: *linux_gcc8 - <<: *ubuntu1804_gcc10
env: [ ARCH=x86_64, ASAN=none, BUILD_TYPE=Debug, SSL=YES, SECURITY=YES, LIFESPAN=YES, DEADLINE=YES, GENERATOR="Unix Makefiles" ] env: [ ARCH=x86_64, BUILD_TYPE=Debug, SSL=YES, SECURITY=YES, LIFESPAN=YES, DEADLINE=YES ]
- <<: *linux_gcc8 - <<: *ubuntu1804_gcc10
env: [ ARCH=x86_64, ASAN=none, BUILD_TYPE=Debug, SSL=YES, SECURITY=YES, LIFESPAN=YES, DEADLINE=YES, GENERATOR="Unix Makefiles", CONANFILE=conanfile102.txt ] env: [ ARCH=x86_64, BUILD_TYPE=Debug, SSL=YES, SECURITY=YES, LIFESPAN=YES, DEADLINE=YES, CONANFILE=conanfile102.txt ]
- <<: *linux_gcc8 - <<: *ubuntu1804_gcc10
env: [ ARCH=x86_64, ASAN=none, BUILD_TYPE=Release, SSL=YES, SECURITY=YES, LIFESPAN=YES, DEADLINE=YES, GENERATOR="Unix Makefiles" ] env: [ ARCH=x86_64, BUILD_TYPE=Release, SSL=YES, SECURITY=YES, LIFESPAN=YES, DEADLINE=YES ]
- <<: *linux_gcc8 - <<: *ubuntu1804_gcc10
env: [ ARCH=x86_64, ASAN=none, BUILD_TYPE=Debug, SSL=NO, SECURITY=YES, LIFESPAN=NO, DEADLINE=NO, GENERATOR="Unix Makefiles" ] env: [ ARCH=x86_64, BUILD_TYPE=Debug, SSL=NO, SECURITY=YES, LIFESPAN=NO, DEADLINE=NO ]
- <<: *linux_clang - <<: *ubuntu1804_clang10
env: [ ARCH=x86_64, ASAN=address, BUILD_TYPE=Debug, SSL=YES, SECURITY=YES, LIFESPAN=YES, DEADLINE=YES, GENERATOR="Unix Makefiles" ] env: [ ARCH=x86_64, SANITIZER=address, BUILD_TYPE=Debug, SSL=YES, SECURITY=YES, LIFESPAN=YES, DEADLINE=YES ]
- <<: *linux_clang - <<: *ubuntu1804_clang10
env: [ ARCH=x86_64, ASAN=address, BUILD_TYPE=Debug, SSL=YES, SECURITY=NO, LIFESPAN=YES, DEADLINE=YES, GENERATOR="Unix Makefiles" ] env: [ ARCH=x86_64, SANITIZER=address, BUILD_TYPE=Debug, SSL=YES, SECURITY=NO, LIFESPAN=YES, DEADLINE=YES ]
- <<: *linux_clang - <<: *ubuntu1804_clang10
env: [ ARCH=x86_64, ASAN=none, BUILD_TYPE=Release, SSL=YES, SECURITY=YES, LIFESPAN=YES, DEADLINE=YES, GENERATOR="Unix Makefiles" ] env: [ ARCH=x86_64, BUILD_TYPE=Release, SSL=YES, SECURITY=YES, LIFESPAN=YES, DEADLINE=YES ]
- <<: *osx_xcode - <<: *macos1015_xcode11_6
env: [ ARCH=x86_64, ASAN=none, BUILD_TYPE=Release, SSL=NO, SECURITY=YES, LIFESPAN=YES, DEADLINE=YES, GENERATOR="Unix Makefiles", MACOSX_DEPLOYMENT_TARGET=10.12 ] env: [ ARCH=x86_64, BUILD_TYPE=Release, SSL=NO, SECURITY=YES, LIFESPAN=YES, DEADLINE=YES, MACOSX_DEPLOYMENT_TARGET=10.12 ]
- <<: *osx_xcode - <<: *macos1015_xcode11_6
env: [ ARCH=x86_64, ASAN=address, BUILD_TYPE=Debug, SSL=YES, SECURITY=YES, LIFESPAN=YES, DEADLINE=YES, GENERATOR="Unix Makefiles" ] env: [ ARCH=x86_64, SANITIZER=address, BUILD_TYPE=Debug, SSL=YES, SECURITY=YES, LIFESPAN=YES, DEADLINE=YES ]
- <<: *osx_xcode - <<: *macos1015_xcode11_6
env: [ ARCH=x86_64, ASAN=none, BUILD_TYPE=Release, SSL=YES, SECURITY=YES, LIFESPAN=YES, DEADLINE=YES, GENERATOR="Unix Makefiles" ] env: [ ARCH=x86_64, BUILD_TYPE=Release, SSL=YES, SECURITY=YES, LIFESPAN=YES, DEADLINE=YES ]
- <<: *windows_vs2017 - <<: *windows1809_vs2017
env: [ ARCH=x86, ASAN=none, BUILD_TYPE=Debug, SSL=YES, SECURITY=YES, LIFESPAN=YES, DEADLINE=YES, GENERATOR="Visual Studio 15 2017", CONANFILE=conanfile102.txt ] env: [ ARCH=x86, BUILD_TYPE=Debug, SSL=YES, SECURITY=YES, LIFESPAN=YES, DEADLINE=YES, CONANFILE=conanfile102.txt ]
- <<: *windows_vs2017 - <<: *windows1809_vs2017
env: [ ARCH=x86_64, ASAN=none, BUILD_TYPE=Debug, SSL=YES, SECURITY=YES, LIFESPAN=YES, DEADLINE=YES, GENERATOR="Visual Studio 15 2017 Win64" ] env: [ ARCH=x86_64, BUILD_TYPE=Debug, SSL=YES, SECURITY=YES, LIFESPAN=YES, DEADLINE=YES ]
- <<: *windows_vs2017 - <<: *windows1809_vs2017
env: [ ARCH=x86_64, ASAN=none, BUILD_TYPE=Release, SSL=YES, SECURITY=YES, LIFESPAN=YES, DEADLINE=YES, GENERATOR="Visual Studio 15 2017 Win64" ] env: [ ARCH=x86_64, BUILD_TYPE=Release, SSL=YES, SECURITY=YES, LIFESPAN=YES, DEADLINE=YES ]
before_script: before_script:
- conan profile new default --detect - conan profile new default --detect
@ -186,7 +199,7 @@ script:
- conan install -b missing -s arch=${ARCH} -s build_type=${BUILD_TYPE} ../${CONANFILE:-conanfile.txt} - conan install -b missing -s arch=${ARCH} -s build_type=${BUILD_TYPE} ../${CONANFILE:-conanfile.txt}
- cmake -DCMAKE_BUILD_TYPE=${BUILD_TYPE} - cmake -DCMAKE_BUILD_TYPE=${BUILD_TYPE}
-DCMAKE_INSTALL_PREFIX=${INSTALLPREFIX} -DCMAKE_INSTALL_PREFIX=${INSTALLPREFIX}
-DUSE_SANITIZER=${ASAN} -DUSE_SANITIZER=${SANITIZER}
-DENABLE_SSL=${SSL} -DENABLE_SSL=${SSL}
-DENABLE_SECURITY=${SECURITY} -DENABLE_SECURITY=${SECURITY}
-DENABLE_LIFESPAN=${LIFESPAN} -DENABLE_LIFESPAN=${LIFESPAN}
@ -194,25 +207,14 @@ script:
-DBUILD_TESTING=on -DBUILD_TESTING=on
-DWERROR=on -DWERROR=on
-G "${GENERATOR}" .. -G "${GENERATOR}" ..
- | - ${SCAN_BUILD} cmake --build . --config ${BUILD_TYPE} --target install -- ${BUILD_TOOL_OPTIONS}
case "${GENERATOR}" in
"Unix Makefiles")
${SCAN_BUILD} cmake --build . --config ${BUILD_TYPE} --target install -- -j 4
;;
"Visual Studio "*)
${SCAN_BUILD} cmake --build . --config ${BUILD_TYPE} --target install -- -nologo -verbosity:minimal -maxcpucount -p:CL_MPCount=2
;;
*)
${SCAN_BUILD} cmake --build . --config ${BUILD_TYPE} --target install
;;
esac
- CYCLONEDDS_URI='<CycloneDDS><Domain><Internal><EnableExpensiveChecks>all</EnableExpensiveChecks><LivelinessMonitoring>true</LivelinessMonitoring></Internal><Tracing><Verbosity>config</Verbosity><OutputFile>stderr</OutputFile></Tracing></Domain></CycloneDDS>' ctest -j 4 --output-on-failure -T test -E '^CUnit_ddsrt_random_default_random$' -C ${BUILD_TYPE} - CYCLONEDDS_URI='<CycloneDDS><Domain><Internal><EnableExpensiveChecks>all</EnableExpensiveChecks><LivelinessMonitoring>true</LivelinessMonitoring></Internal><Tracing><Verbosity>config</Verbosity><OutputFile>stderr</OutputFile></Tracing></Domain></CycloneDDS>' ctest -j 4 --output-on-failure -T test -E '^CUnit_ddsrt_random_default_random$' -C ${BUILD_TYPE}
- | - |
if [ "${ASAN}" = "none" ]; then if [ -z "${SANITIZER}" ]; then
${SHELL} ../src/tools/ddsperf/sanity.bash; ${SHELL} ../src/tools/ddsperf/sanity.bash;
fi fi
- | - |
if [ "${ASAN}" != "none" ]; then if [ -n "${SANITIZER}" ]; then
CMAKE_LINKER_FLAGS="-DCMAKE_LINKER_FLAGS=-fsanitize=${USE_SANITIZER}"; CMAKE_LINKER_FLAGS="-DCMAKE_LINKER_FLAGS=-fsanitize=${USE_SANITIZER}";
CMAKE_C_FLAGS="-DCMAKE_C_FLAGS=-fsanitize=${USE_SANITIZER}"; CMAKE_C_FLAGS="-DCMAKE_C_FLAGS=-fsanitize=${USE_SANITIZER}";
fi fi

View file

@ -174,21 +174,26 @@ if(${CMAKE_GENERATOR} STREQUAL "Xcode")
set (CMAKE_XCODE_ATTRIBUTE_GCC_WARN_ABOUT_MISSING_PROTOTYPES YES) set (CMAKE_XCODE_ATTRIBUTE_GCC_WARN_ABOUT_MISSING_PROTOTYPES YES)
endif() endif()
if(CMAKE_VERSION VERSION_LESS 3.13)
macro(add_link_options)
link_libraries(${ARGV})
endmacro()
endif()
# Make it easy to enable Clang's/gcc's analyzers # Make it easy to enable Clang's/gcc's analyzers
set(USE_SANITIZER "" CACHE STRING "Sanitizers to enable on the build.") set(USE_SANITIZER "" CACHE STRING "Sanitizers to enable on the build.")
if(NOT("${USE_SANITIZER}" STREQUAL "")) if(USE_SANITIZER)
foreach(san "${USE_SANITIZER}") string(REGEX REPLACE " " "" USE_SANITIZER "${USE_SANITIZER}")
message(STATUS "Enabling sanitizer: '${san}'") string(REGEX REPLACE "[,;]+" ";" USE_SANITIZER "${USE_SANITIZER}")
foreach(san ${USE_SANITIZER})
if("${san}" STREQUAL address) if(san STREQUAL "address")
add_compile_options(-fno-omit-frame-pointer) add_compile_options("-fno-omit-frame-pointer")
link_libraries(-fno-omit-frame-pointer) add_link_options("-fno-omit-frame-pointer")
endif() endif()
if(san AND NOT san STREQUAL "none")
if(NOT("${san}" STREQUAL "none")) message(STATUS "Enabling sanitizer: ${san}")
add_compile_options("-fsanitize=${san}") add_compile_options("-fsanitize=${san}")
link_libraries("-fsanitize=${san}") add_link_options("-fsanitize=${san}")
endif() endif()
endforeach() endforeach()
endif() endif()