Subversion Repositories rld.domoticz

Rev

Blame | Last modification | View Log

branches:
  except:
    - /^[0-9]/

language: cpp

cache:
  - apt

sources:
  - focal

# What to install before the build
before_install:
  - eval "${MATRIX_EVAL}"
  # Domoticz needs the full history to be able to calculate the version string
  - git fetch --unshallow
  # OpenZWave
  - git clone https://github.com/OpenZWave/open-zwave.git open-zwave-read-only
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
      brew update;
      brew upgrade boost;
    fi;

# Build matrix definition
# * Two builds
#   1. Linux x86_64
#   2. Apple OSX (Disabled until someone wants to correct it)
matrix:
  include:
  # Linux x86_64
  - os: linux
    dist: focal
    sudo: required
    compiler: gcc
    env:
          - TARGET_ARCHITECTURE=x86_64
          - MATRIX_EVAL="CC=gcc-8 && CXX=g++-8"
    addons:
      apt:
        sources:
#          - george-edison55-bionic-backports  # cmake
          - ubuntu-toolchain-r-test
        packages:
          - gcc-8
          - g++-8
          - curl
          - libcurl4-gnutls-dev
          - libusb-dev
          - zlib1g-dev
          - libssl-dev
          - libudev-dev
          - git
          - libdigest-sha-perl
          - python3-dev
          - liblua5.3-dev
          - libcereal-dev
          - uthash-dev
    script:
      - curl -sSL https://github.com/Kitware/CMake/releases/download/v3.19.0/cmake-3.19.0-Linux-x86_64.tar.gz -o cmake.tar.gz;
      - sudo tar xf cmake.tar.gz --strip 1 -C /usr/local;
      - export PATH=/usr/local/bin:$PATH;
      - wget https://dl.bintray.com/boostorg/release/1.75.0/source/boost_1_75_0.tar.gz >> /dev/null 2>&1
      - tar xfz boost_1_75_0.tar.gz
      - cd boost_1_75_0/
      - ./bootstrap.sh
      - ./b2 stage threading=multi link=static --with-thread --with-system --with-chrono >> /dev/null 2>&1
      - sudo ./b2 install threading=multi link=static --with-thread --with-system --with-chrono >> /dev/null 2>&1
      - cd ..
      - (cd open-zwave-read-only; make; sudo make install)
      - cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_LIBRARY_PATH=open-zwave-read-only CMakeLists.txt
      - make
  # Apple OSX
  # - os: osx
  #   osx_image: xcode8.3
  #   #compiler:
  #   #  - gcc
  #   env:
  #         - TARGET_ARCHITECTURE=x86_64
  #   install:
  #     - brew install boost|| true
  #     - brew install zlib || true
  #     - brew install openssl
  #     - brew link openssl --force
  #     - brew install md5sha1sum
  #     - brew upgrade python
  #     - brew upgrade cmake
  #     - export OPENSSL_ROOT_DIR=/usr/local/opt/openssl
  #   script:
  #     - CPPFLAGS="-std=c++11" cmake -DCMAKE_BUILD_TYPE=Release -DPYTHON_INCLUDE_DIR=$(python3-config --prefix)/Headers -DPYTHON_LIBRARY=$(python3-config --prefix)/lib/libpython3.6.dylib
  #     - make

# What to do with the build artifacts
# - Upload to the Domoticz file server
before_deploy:
  - tar czf domoticz_${TRAVIS_OS_NAME}_${TARGET_ARCHITECTURE}.tgz domoticz History.txt License.txt domoticz.sh server_cert.pem updatebeta updaterelease www/ scripts/ Config/ dzVents/
  - shasum -a 256 domoticz_${TRAVIS_OS_NAME}_${TARGET_ARCHITECTURE}.tgz > domoticz_${TRAVIS_OS_NAME}_${TARGET_ARCHITECTURE}.tgz.sha256sum
  - cp appversion.h.txt version_${TRAVIS_OS_NAME}_${TARGET_ARCHITECTURE}.h
  - cp History.txt history_${TRAVIS_OS_NAME}_${TARGET_ARCHITECTURE}.txt
deploy:
  skip_cleanup: true
  provider: script
  script: curl -T "{domoticz_${TRAVIS_OS_NAME}_${TARGET_ARCHITECTURE}.tgz,domoticz_${TRAVIS_OS_NAME}_${TARGET_ARCHITECTURE}.tgz.sha256sum,version_${TRAVIS_OS_NAME}_${TARGET_ARCHITECTURE}.h,history_${TRAVIS_OS_NAME}_${TARGET_ARCHITECTURE}.txt,History.txt}" --retry 3 -s -S -k -u "$FTP_USER:$FTP_PASSWORD" "ftps://$FTP_HOST/beta/"
  on:
    branch: development
    repo: domoticz/domoticz