Gabriele Contini
2020-03-15 a1b64080d1525a7a65e53f33d1a3fd257957e732
.travis.yml
@@ -1,11 +1,18 @@
language: cpp
services: docker
matrix:
stages:
   - name: test
   - name: documentation
     if: branch = develop
jobs:
   include:
   - os: linux
     dist: bionic
     name: "Ubuntu 18.04 - Travis CI VM"
     env:
     - VIRTUAL_ENV=VM
     addons:
        apt:
          packages:
@@ -46,6 +53,8 @@
   - os: linux
     dist: bionic
     name: "Ubuntu 18.04 - Travis CI VM - Debug build"
     env:
     - VIRTUAL_ENV=VM
     addons:
        apt:
          packages:
@@ -63,32 +72,47 @@
             - libboost-date-time-dev
             - lcov
     before_script:
         - cd build && cmake -DCMAKE_INSTALL_PREFIX=../../install -DCMAKE_BUILD_TYPE=Debug ..
         - cd build && cmake -DCMAKE_INSTALL_PREFIX=../../install -DCMAKE_BUILD_TYPE=Debug -DCMAKE_BUILD_TYPE=Debug -DCODE_COVERAGE=ON ..
     script: 
         - cmake --build . --target install
         - ctest
         - ctest -T memcheck
     after_success:
         # Create lcov report
         - lcov --capture --directory . --output-file coverage.info
         - lcov --remove coverage.info '/usr/*' --output-file coverage.info # filter system-files
         - 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 cmake boost boost-devel boost-static openssl openssl-devel glibc-static devtoolset-7-toolchain devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-valgrind-devel &&
              cd /root/open-license-manager/build &&
              CC=/opt/rh/devtoolset-7/root/usr/bin/gcc CXX=/opt/rh/devtoolset-7/root/usr/bin/g++ cmake .."
              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 && VIRT_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 && VIRTUAL_ENV=DOCKER make test"
   - os: linux
     dist: bionic
     name: "Ubuntu 18.04 - MinGW cross-compile for Windows x64"
@@ -115,7 +139,7 @@
        - sudo ln -s /usr/bin/x86_64-w64-mingw32-g++ /usr/local/bin/g++-mingw
        - 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 --layout=tagged --prefix=./dist release install
        - 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://bintray.com/vszakats/generic/download_file?file_path=openssl-1.0.2h-win64-mingw.7z -O openssl.7z
        - 7z x openssl.7z
@@ -163,9 +187,42 @@
     script: 
         - travis_wait 20 cmake --build . --target install --config Release
         - ctest -C Release
   - os: linux
     dist: bionic
     stage: documentation
     name: "Deploy documentation"
     addons:
         apt:
           packages:
             - cmake
             - 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
             - python3-pip
             - doxygen
             - graphviz
     script:
        - pip3 install sphinx sphinx_rtd_theme breathe sphinx-markdown-tables recommonmark sphinx-rtd-theme
        - make documentation
     deploy:
        provider: pages
        skip_cleanup: true
        github_token: $GITHUB_TOKEN
        keep_history: false
        verbose: true
        target_branch: "gh-pages"
        local_dir: "build/docs/sphinx"
        on:
            branch: develop
env:
    - CTEST_OUTPUT_ON_FAILURE=1
    - CTEST_OUTPUT_ON_FAILURE=1
before_script:
    - cd build && cmake -DCMAKE_INSTALL_PREFIX=../../install ..