dist: bionic language: cpp cache: ccache sudo: false addons: apt: sources: &zeromq_source - sourceline: 'deb http://download.opensuse.org/repositories/network:/messaging:/zeromq:/release-stable/xUbuntu_18.04/ ./' key_url: 'http://download.opensuse.org/repositories/network:/messaging:/zeromq:/release-stable/xUbuntu_18.04/Release.key' sources: &zeromq_source_and_toolchain_gcc - ubuntu-toolchain-r-test - sourceline: 'deb http://download.opensuse.org/repositories/network:/messaging:/zeromq:/release-stable/xUbuntu_18.04/ ./' key_url: 'http://download.opensuse.org/repositories/network:/messaging:/zeromq:/release-stable/xUbuntu_18.04/Release.key' sources: &zeromq_source_and_toolchain_clang_4-0 - llvm-toolchain-4.0 - sourceline: 'deb http://download.opensuse.org/repositories/network:/messaging:/zeromq:/release-stable/xUbuntu_18.04/ ./' key_url: 'http://download.opensuse.org/repositories/network:/messaging:/zeromq:/release-stable/xUbuntu_18.04/Release.key' sources: &zeromq_source_and_toolchain_clang_5-0 - llvm-toolchain-5.0 - sourceline: 'deb http://download.opensuse.org/repositories/network:/messaging:/zeromq:/release-stable/xUbuntu_18.04/ ./' key_url: 'http://download.opensuse.org/repositories/network:/messaging:/zeromq:/release-stable/xUbuntu_18.04/Release.key' sources: &zeromq_source_and_toolchain_clang_6-0 - ubuntu-toolchain-r-test - llvm-toolchain-6.0 - sourceline: 'deb http://download.opensuse.org/repositories/network:/messaging:/zeromq:/release-stable/xUbuntu_18.04/ ./' key_url: 'http://download.opensuse.org/repositories/network:/messaging:/zeromq:/release-stable/xUbuntu_18.04/Release.key' sources: &zeromq_source_and_toolchain_clang_7 - ubuntu-toolchain-r-test - llvm-toolchain-7 - sourceline: 'deb http://download.opensuse.org/repositories/network:/messaging:/zeromq:/release-stable/xUbuntu_18.04/ ./' key_url: 'http://download.opensuse.org/repositories/network:/messaging:/zeromq:/release-stable/xUbuntu_18.04/Release.key' sources: &zeromq_source_and_toolchain_clang_8 - ubuntu-toolchain-r-test - llvm-toolchain-8 - sourceline: 'deb http://download.opensuse.org/repositories/network:/messaging:/zeromq:/release-stable/xUbuntu_18.04/ ./' key_url: 'http://download.opensuse.org/repositories/network:/messaging:/zeromq:/release-stable/xUbuntu_18.04/Release.key' sources: &zeromq_source_and_toolchain_clang_9 - ubuntu-toolchain-r-test - llvm-toolchain-9 - sourceline: 'deb http://download.opensuse.org/repositories/network:/messaging:/zeromq:/release-stable/xUbuntu_18.04/ ./' key_url: 'http://download.opensuse.org/repositories/network:/messaging:/zeromq:/release-stable/xUbuntu_18.04/Release.key' packages: &required_packages - cmake - libboost-dev - libboost-filesystem-dev - libboost-regex-dev - libboost-test-dev - libboost-thread-dev - libxml2-dev - libpcap-dev - libsystemd-dev - libsctp-dev - libpq-dev - postgresql-server-dev-10 - libmysqlclient-dev packages: &optional_packages - libssl-dev - libczmq-dev matrix: include: - compiler: gcc sudo: true before_install: - sudo apt-get remove -qq libssl-dev env: - DTLS="OFF" MYSQL="OFF" ZMQ="OFF" BUILD_TYPE="RelWithDebInfo" addons: apt: packages: - *required_packages - compiler: clang sudo: true before_install: - sudo apt-get remove -qq libssl-dev env: - DTLS="OFF" MYSQL="OFF" ZMQ="OFF" BUILD_TYPE="RelWithDebInfo" addons: apt: packages: - *required_packages - compiler: gcc env: - DTLS="ON" ZMQ="ON" MYSQL="ON" BUILD_TYPE="RelWithDebInfo" addons: apt: sources: *zeromq_source packages: - *required_packages - *optional_packages - compiler: gcc env: - DTLS="ON" ZMQ="ON" MYSQL="ON" BUILD_TYPE="Debug" addons: apt: sources: *zeromq_source packages: - *required_packages - *optional_packages - compiler: gcc-6 env: - DTLS="ON" ZMQ="ON" MYSQL="ON" BUILD_TYPE="RelWithDebInfo" MATRIX_EVAL="CC=gcc-6 CXX=g++-6" addons: apt: sources: *zeromq_source_and_toolchain_gcc packages: - *required_packages - *optional_packages - g++-6 - compiler: gcc-7 env: - DTLS="ON" ZMQ="ON" MYSQL="ON" BUILD_TYPE="RelWithDebInfo" MATRIX_EVAL="CC=gcc-7 CXX=g++-7" addons: apt: sources: *zeromq_source_and_toolchain_gcc packages: - *required_packages - *optional_packages - g++-7 - compiler: gcc-8 env: - DTLS="ON" ZMQ="ON" MYSQL="ON" BUILD_TYPE="RelWithDebInfo" MATRIX_EVAL="CC=gcc-8 CXX=g++-8" addons: apt: sources: *zeromq_source_and_toolchain_gcc packages: - *required_packages - *optional_packages - g++-8 - compiler: gcc-9 env: - DTLS="ON" ZMQ="ON" MYSQL="ON" BUILD_TYPE="RelWithDebInfo" MATRIX_EVAL="CC=gcc-9 CXX=g++-9" addons: apt: sources: *zeromq_source_and_toolchain_gcc packages: - *required_packages - *optional_packages - g++-9 - compiler: gcc-10 env: - DTLS="ON" ZMQ="ON" MYSQL="ON" BUILD_TYPE="RelWithDebInfo" MATRIX_EVAL="CC=gcc-10 CXX=g++-10" addons: apt: sources: *zeromq_source_and_toolchain_gcc packages: - *required_packages - *optional_packages - g++-10 - compiler: clang env: - DTLS="ON" ZMQ="ON" MYSQL="ON" BUILD_TYPE="RelWithDebInfo" addons: apt: sources: *zeromq_source packages: - *required_packages - *optional_packages - compiler: clang env: - DTLS="ON" ZMQ="ON" MYSQL="ON" BUILD_TYPE="Debug" addons: apt: sources: *zeromq_source packages: - *required_packages - *optional_packages - compiler: clang-4.0 env: - DTLS="ON" ZMQ="ON" MYSQL="ON" BUILD_TYPE="RelWithDebInfo" MATRIX_EVAL="CC=clang-4.0 && CXX=clang++-4.0" addons: apt: sources: *zeromq_source_and_toolchain_clang_4-0 packages: - *required_packages - *optional_packages - clang-4.0 - compiler: clang-5.0 env: - DTLS="ON" ZMQ="ON" MYSQL="ON" BUILD_TYPE="RelWithDebInfo" MATRIX_EVAL="CC=clang-5.0 && CXX=clang++-5.0" addons: apt: sources: *zeromq_source_and_toolchain_clang_5-0 packages: - *required_packages - *optional_packages - clang-5.0 - compiler: clang-6.0 env: - DTLS="ON" ZMQ="ON" MYSQL="ON" BUILD_TYPE="RelWithDebInfo" MATRIX_EVAL="CC=clang-6.0 && CXX=clang++-6.0" addons: apt: sources: *zeromq_source_and_toolchain_clang_6-0 packages: - *required_packages - *optional_packages - clang-6.0 - compiler: clang-7 env: - DTLS="ON" ZMQ="ON" MYSQL="ON" BUILD_TYPE="RelWithDebInfo" MATRIX_EVAL="CC=clang-7 && CXX=clang++-7" addons: apt: sources: *zeromq_source_and_toolchain_clang_7 packages: - *required_packages - *optional_packages - clang-7 - compiler: clang-8 env: - DTLS="ON" ZMQ="ON" MYSQL="ON" BUILD_TYPE="RelWithDebInfo" MATRIX_EVAL="CC=clang-8 && CXX=clang++-8" addons: apt: sources: *zeromq_source_and_toolchain_clang_8 packages: - *required_packages - *optional_packages - clang-8 - compiler: clang-9 env: - DTLS="ON" ZMQ="ON" MYSQL="ON" BUILD_TYPE="RelWithDebInfo" MATRIX_EVAL="CC=clang-9 && CXX=clang++-9" addons: apt: sources: *zeromq_source_and_toolchain_clang_9 packages: - *required_packages - *optional_packages - clang-9 # - stage: Static Analysis # env: # - DTLS="ON" ZMQ="ON" BUILD_TYPE="RelWithDebInfo" MATRIX_EVAL="CC=clang-7 && CXX=clang++-7" # addons: # apt: # sources: *zeromq_source_and_toolchain_clang_7 # packages: # - *required_packages # - *optional_packages # - clang-7 # - clang-tools-7 # script: scan-build --status-bugs cmake -DCMAKE_INSTALL_PREFIX=/tmp -DCMAKE_BUILD_TYPE="$BUILD_TYPE" -DSUPPORT_JOURNALD=ON -DSUPPORT_DTLS="$DTLS" -DSUPPORT_ZMQ="$ZMQ" . && scan-build --status-bugs make -k before_install: - eval "${MATRIX_EVAL}" script: mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=/tmp -DCMAKE_BUILD_TYPE="$BUILD_TYPE" -DSUPPORT_MYSQL="$MYSQL" -DSUPPORT_POSTGRESQL=ON -DSUPPORT_JOURNALD=ON -DSUPPORT_DTLS="$DTLS" -DSUPPORT_ZMQ="$ZMQ" .. && make -k && make test && make install