sudo: required
dist: bionic

language: c

env:
  global:
    - OPENSSL_INSTALL_DIR="${HOME}/opt"

addons:
  sonarcloud:
    organization: "softethervpn"

matrix:
  include:
    - env: OPENSSL_VERSION="1.0.2s" BUILD_DEB="1"
      os: linux
      compiler: gcc
    - env: RUN_SONARCLOUD=1 OPENSSL_VERSION="1.1.1c"
      os: linux
      compiler: gcc
    - env: OPENSSL_VERSION="1.1.1c" LABEL="linux-ppc64le" CMAKE_VERSION="3.9.6"
      arch: ppc64le
      os: linux
      compiler: gcc
      install:
        - wget https://cmake.org/files/v${CMAKE_VERSION%.*}/cmake-${CMAKE_VERSION}.tar.gz && tar -xzf cmake-${CMAKE_VERSION}.tar.gz
        - cd cmake-${CMAKE_VERSION} 
        - ./bootstrap > build-deps.log 2>&1 || (cat build-deps.log && exit 1)
        - sudo make install > build-deps.log 2>&1 || (cat build-deps.log && exit 1)
        - cd ..
    - env: OPENSSL_VERSION="1.1.1c"
      os: linux
      compiler: clang
    - env: LIBRESSL_VERSION="2.9.2"
      os: linux
      compiler: gcc
      before_install:
        - sudo apt-get -y install libsodium-dev
        - bash .ci/build-libressl.sh > build-deps.log 2>&1 || (cat build-deps.log && exit 1)

cache:
  directories:
  - download-cache
  - ${HOME}/opt

before_install:
  - sudo apt-get -y install libsodium-dev
  - bash .ci/build-openssl.sh > build-deps.log 2>&1 || (cat build-deps.log && exit 1)

script:
  - export OPENSSL_ROOT_DIR=${OPENSSL_INSTALL_DIR}
  - export CFLAGS="-I${HOME}/opt/include"
  - export LDFLAGS="-L${HOME}/opt/lib -Wl,-rpath,${HOME}/opt/lib"
  - .ci/sonarcloud.sh
  - ./configure
  - make -j $(nproc || sysctl -n hw.ncpu || echo 4) -C build
  - ldd build/vpnserver
  - if [ "${BUILD_DEB}" = "1" ]; then make package -C build; fi
  - .ci/memory-leak-test.sh
