language: cpp services: docker stages: - name: test - name: documentation if: branch = develop jobs: include: - os: linux dist: bionic name: "Travis CI VM" env: - VIRTUAL_ENV=VM - CTEST_OUTPUT_ON_FAILURE=1 addons: apt: packages: - cmake - valgrind - libssl-dev - zlib1g-dev - libboost-dev - libboost-test-dev - libboost-filesystem-dev - libboost-iostreams-dev - libboost-program-options-dev - libboost-system-dev - libboost-thread-dev - libboost-date-time-dev script: - cmake --build . --target install - ctest -T memcheck - os: linux dist: focal name: "Travis CI VM - Release" env: - VIRTUAL_ENV=VM - CTEST_OUTPUT_ON_FAILURE=1 before_script: - sudo apt-get update - sudo apt-get install -y cmake libssl-dev zlib1g-dev libboost-dev libboost-filesystem-dev libboost-test-dev libboost-iostreams-dev libboost-program-options-dev libboost-system-dev libboost-thread-dev libboost-date-time-dev - cd build && cmake -DCMAKE_INSTALL_PREFIX=../../install -DCMAKE_BUILD_TYPE=Release .. script: - cat /proc/mounts - ls -lLai /dev/disk/by-uuid - ls -lLai /dev/disk/by-label - ls -lai /dev - ls -la /run - cmake --build . --target install - ctest; cat /tmp/open-license.log - os: linux dist: bionic name: "VM - set LCC_PROJECT_NAME" env: - VIRTUAL_ENV=VM - CTEST_OUTPUT_ON_FAILURE=1 addons: apt: packages: - cmake - valgrind - libssl-dev - zlib1g-dev - libboost-dev - libboost-test-dev - libboost-filesystem-dev - libboost-iostreams-dev - libboost-program-options-dev - libboost-system-dev - libboost-thread-dev - libboost-date-time-dev before_script: - cd build && cmake -DCMAKE_INSTALL_PREFIX=../../install -DCMAKE_BUILD_TYPE=Debug -DCODE_COVERAGE=ON -DLCC_PROJECT_NAME=MYPROJECT .. script: - cmake --build . --target install - ctest -T memcheck - os: linux dist: xenial env: - CTEST_OUTPUT_ON_FAILURE=1 name: "Travis CI VM" addons: apt: packages: - cmake - valgrind - libssl-dev - zlib1g-dev - libboost-dev - libboost-test-dev - libboost-filesystem-dev - libboost-iostreams-dev - libboost-program-options-dev - libboost-system-dev - libboost-thread-dev - libboost-date-time-dev - os: linux dist: bionic name: "Travis CI VM - Debug build" env: - VIRTUAL_ENV=VM - CTEST_OUTPUT_ON_FAILURE=1 addons: apt: packages: - cmake - valgrind - libssl-dev - zlib1g-dev - libboost-dev - libboost-test-dev - libboost-filesystem-dev - libboost-iostreams-dev - libboost-program-options-dev - libboost-system-dev - libboost-thread-dev - libboost-date-time-dev - lcov before_script: - cd build && cmake -DCMAKE_INSTALL_PREFIX=../../install -DCMAKE_BUILD_TYPE=Debug -DCMAKE_BUILD_TYPE=Debug -DCODE_COVERAGE=ON .. script: - cmake --build . --target install - src/inspector/lccinspector - ctest after_success: # Create lcov report - lcov --capture --directory . --output-file coverage.info - lcov --remove coverage.info '/usr/include/*' '*/ini/*' '*/test/*' --output-file coverage.info # filter system-files - lcov --list coverage.info # debug info # Uploading report to CodeCov - bash <(curl -s https://codecov.io/bash) -f coverage.info || echo "Codecov did not collect coverage reports" - os: linux dist: bionic name: "CentOS-7 Docker" before_script: - docker run --name centos7_toconfigure -v `pwd`:/root/open-license-manager centos:centos7 /bin/bash -c "yum -y update && yum -y install install centos-release-scl && yum -y install wget boost boost-devel boost-static openssl openssl-devel openssl-static glibc-static devtoolset-7-toolchain devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-valgrind-devel && wget https://cmake.org/files/v3.11/cmake-3.11.0.tar.gz && tar zxvf cmake-3.11.0.tar.gz && cd cmake-3.11.0 && export CC=/opt/rh/devtoolset-7/root/usr/bin/gcc && export CXX=/opt/rh/devtoolset-7/root/usr/bin/g++ && ./bootstrap && make && make install && cd /root/open-license-manager/build && cmake .." - docker commit centos7_toconfigure centos7_configured script: - docker run --name centos7_make -v `pwd`:/root/open-license-manager centos7_configured /bin/bash -c "cd /root/open-license-manager/build && make && make install && CTEST_OUTPUT_ON_FAILURE=1 VIRTUAL_ENV=CONTAINER make test" - os: linux dist: bionic name: "CentOS-8 Docker" before_script: - docker run --name centos8_toconfigure -v `pwd`:/root/open-license-manager centos:centos8 /bin/bash -c \ "yum -y update && yum -y groupinstall 'Development Tools' && yum -y install wget cmake boost boost-devel openssl-devel zlib-devel && dnf -y --enablerepo=powertools install boost-static && wget https://github.com/openssl/openssl/archive/OpenSSL_1_1_1d.tar.gz && tar xzf OpenSSL_1_1_1d.tar.gz && cd openssl-OpenSSL_1_1_1d && ./config && make -j 8 && make install && cd /root/open-license-manager/build && cmake .." - docker commit centos8_toconfigure centos8_configured script: - docker run --name centos8_make -v `pwd`:/root/open-license-manager centos8_configured /bin/bash -c \ "cd /root/open-license-manager/build && make && make install && src/inspector/lccinspector && CTEST_OUTPUT_ON_FAILURE=1 VIRTUAL_ENV=DOCKER make test" - os: linux dist: focal name: "MinGW cross-compile for Windows x64" env: - CTEST_OUTPUT_ON_FAILURE=1 - WINEARCH=win64 addons: apt: update: true packages: - cmake - binutils-mingw-w64 - mingw-w64 - mingw-w64-tools - mingw-w64-x86-64-dev - wine64-development - wine64-development-preloader - wine-development - wine64 - p7zip-full before_script: - sudo ln -s /usr/bin/x86_64-w64-mingw32-g++ /usr/local/bin/g++-mingw - cd build - wget -c https://boostorg.jfrog.io/artifactory/main/release/1.71.0/source/boost_1_71_0.tar.bz2 - tar xjf boost_1_71_0.tar.bz2 - cd boost_1_71_0 - ./bootstrap.sh - travis_wait 30 ./b2 toolset=gcc-mingw target-os=windows address-model=64 --with-date_time --with-test --with-filesystem --with-program_options --with-regex --with-serialization --with-system runtime-link=static --prefix=./dist release install - cd .. - wget --no-check-certificate https://github.com/open-license-manager/build-dependencies/raw/main/openssl/openssl-dev-1.0.2s-x86_64-win-mingw-w64.zip -O openssl.zip - unzip openssl.zip - cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchain-ubuntu-mingw64.cmake -DCMAKE_INSTALL_PREFIX=../../install -DBOOST_ROOT=$PWD/boost_1_71_0/dist -DOPENSSL_ROOT_DIR=$PWD/openssl/ .. - os: windows name: "Widnows server 1803 - Visual Studio 15 2017 Win64 - (/MD)" before_script: - choco install -y boost-msvc-14.1 - cd "${TRAVIS_BUILD_DIR}/build" - cmake -G "Visual Studio 15 2017 Win64" -DBOOST_ROOT="C:/local/boost_1_74_0" .. - os: windows name: "Widnows server 1803 - Visual Studio 15 2017 Win64 - (/MT)" before_script: - choco install -y boost-msvc-14.1 - cd build && cmake -G "Visual Studio 15 2017 Win64" -DBOOST_ROOT="C:/local/boost_1_74_0" -DSTATIC_RUNTIME=1 .. - os: windows name: "Widnows server 1803 - MinGW Win64" cache: edge: true directories: - "./boost-mingw" before_script: - | if [ -d "${TRAVIS_BUILD_DIR}/boost-mingw/lib" ]; then echo "Boost already installed" else echo "Boost not cached, compiling it" wget -q https://versaweb.dl.sourceforge.net/project/boost/boost/1.68.0/boost_1_68_0.7z echo "Boost downloaded" travis_wait 20 7z x boost_1_68_0.7z -oC:/local cd "C:/local/boost_1_68_0" ./bootstrap.bat gcc travis_wait 40 ./b2.exe -d0 --with-date_time --with-test --with-filesystem --with-program_options --with-regex --with-serialization --with-system runtime-link=static toolset=gcc --prefix=${TRAVIS_BUILD_DIR}/boost-mingw install echo "Boost installed" cd ${TRAVIS_BUILD_DIR}/boost-mingw/lib dir fi - cd "${TRAVIS_BUILD_DIR}" - cd build && cmake -G "MinGW Makefiles" -DBOOST_ROOT="${TRAVIS_BUILD_DIR}/boost-mingw" -DBoost_ARCHITECTURE="-x64" -DCMAKE_CXX_COMPILER_ARCHITECTURE_ID="x64" -DCMAKE_SH="CMAKE_SH-NOTFOUND" .. script: - travis_wait 20 cmake --build . --target install --config Release - ctest -C Release env: - CTEST_OUTPUT_ON_FAILURE=1 before_script: - cd build && cmake -DCMAKE_INSTALL_PREFIX=../../install .. script: - cmake --build . --target install --config Release - ctest -C Release