language: cpp
sudo: required
dist: xenial

notifications:
  webhooks:
    urls:
    - https://scalar.vector.im/api/neb/services/hooks/dHJhdmlzLWNpLyU0MHJlZF9za3klM0FuaGVrby5pbS8lMjFVYkNtSWxHVEhOSWdJUlpjcHQlM0FuaGVrby5pbQ
    on_success: always
    on_failure: always
    on_start: never
  email: false

cache:
  directories:
    - .hunter
    - build-flatpak/.flatpak-builder

matrix:
    include:
        - os: osx
          compiler: clang
          # C++17 support
          osx_image: xcode10.2
          env:
            - DEPLOYMENT=1
          addons:
            homebrew:
              taps: nlohmann/json
              packages:
                - clang-format
                - cmake
                - ninja
                - openssl
                - qt5
                - python3 # for uploads
              update: true # workaround for broken travis homebrew
        - os: linux
          compiler: gcc-7
          env:
              - CXX=g++-7
              - CC=gcc-7
              - QT_PKG=512
              - DEPLOYMENT=1
          addons:
              apt:
                  sources: 
                    - ubuntu-toolchain-r-test
                    - sourceline: 'ppa:beineri/opt-qt-5.12.6-xenial'
                  packages: 
                    - g++-7 
                    - ninja-build
                    - qt512base
                    - qt512tools
                    - qt512svg
                    - qt512multimedia
                    - qt512quickcontrols2
                    - qt512graphicaleffects
                    - liblmdb-dev
                    - libgl1-mesa-dev # needed for missing gl.h
        - os: linux
          compiler: gcc-8
          env:
              - CXX=g++-8
              - CC=gcc-8
              - QT_PKG=59
          addons:
              apt:
                  sources: 
                    - ubuntu-toolchain-r-test
                    - sourceline: 'ppa:beineri/opt-qt597-xenial'
                  packages: 
                    - g++-8 
                    - ninja-build
                    - qt59base
                    - qt59tools
                    - qt59svg
                    - qt59multimedia
                    - qt59quickcontrols2
                    - qt59graphicaleffects
                    - liblmdb-dev
                    - libgl1-mesa-dev # needed for missing gl.h
        - os: linux
          compiler: clang-6
          env:
              - CXX=clang++-6.0
              - CC=clang-6.0
              - QT_PKG=59
          addons:
              apt:
                  sources: 
                    - ubuntu-toolchain-r-test
                    - llvm-toolchain-xenial-6.0
                    - sourceline: 'ppa:beineri/opt-qt597-xenial'
                  packages: 
                    - clang++-6.0
                    - g++-7 
                    - ninja-build
                    - qt59base
                    - qt59tools
                    - qt59svg
                    - qt59multimedia
                    - qt59quickcontrols2
                    - qt59graphicaleffects
                    - liblmdb-dev
                    - libgl1-mesa-dev # needed for missing gl.h
        - os: linux
          env:
              - DEPLOYMENT=1
              - FLATPAK=1
              - ARCH=amd64
          addons:
              apt:
                  sources: 
                    - sourceline: 'ppa:alexlarsson/flatpak'
        - os: linux
          arch: arm64
          env:
              - DEPLOYMENT=1
              - FLATPAK=1
              - ARCH=arm64
          addons:
              apt:
                  sources: 
                    - sourceline: 'ppa:alexlarsson/flatpak'
                  packages: 
                    - librsvg2-bin

before_install:
    # Use TRAVIS_TAG if defined, or the short commit SHA otherwise
    - export VERSION=${TRAVIS_TAG:-$(git rev-parse --short HEAD)}
install:
    - ./.ci/install.sh
    - export PATH=/usr/local/bin:${PATH}

script:
    - ./.ci/script.sh
    - sed -i -e "s/VERSION_NAME_VALUE/${VERSION}/g" ./.ci/bintray-release.json || true
    - cp ./.ci/bintray-release.json .
deploy:
- provider: script
  script: ./.ci/upload-nightly.sh
  skip_cleanup: true
  on:
    condition: "$DEPLOYMENT == 1"
    repo: Nheko-Reborn/nheko
    tags: false
    all_branches: true
- skip_cleanup: true
  overwrite: true
  provider: releases
  api_key:
    secure: "rDFG4DIwIG+A9R8seQ3SIXfWOWhJgJHlNQHtAsnfRrPOSIpI7kMebHLDO5sBPNaJ+9MH9acVTJZOabVLf0DdPqRsDUw/PN28aiiqbaH9+zAGOTxahaQ222Gz/ROf/iXvDoTDUnUzURqQUA0YlHy89Z1CnO7TKwlsYhA5A8n0biG7d8i7vQayvwYXfxlk7CouK+Y86ana4r54j1emGRg97p7BOhORibg54ZD520hN0Iif7EJM2hQDTWKZzTDdBt3mF1kBr7cBbuBHWuvE+eIFO3F3yi+u7ggHzw5FaAv245N4fhkpYUl/mSbhLrQG2NOnkglFCpQ2lLd6mWdXHwUNrxN/j+UPewmLg7CymY25zkiL43deDsT8KmpzYalmdaevCqEaX2VehuBzblmH4Re8wnXqBrab14fq0TNDfPqC+NKxy75mdxszbKBC55nTlTB+hsox43dvfvyXDSON4qAzwe9Q/tfp8mL2mehcM868vhw5cbNIskKT8SrhMwmA+sxoqnqLsmAjNVJVTgg6ppbMhjNMOBTndblRHfH6bxsgpTXPtnzC17o9Mw1WgF63eOWNYBEj2wW5ZvWX95Gvg5YzvsF178ipHZDqZfA62ShB3b89fcqN5SOxBsE8UYoHjQIHxQdWeKv23iFwmT8fWAOD8sKDcRyz0WCgidZ1/RjLqsU="
  file_glob: true
  file:
  - nheko-${VERSION}-x86_64.AppImage
  on:
    condition: "$TRAVIS_OS_NAME == linux && $DEPLOYMENT == 1"
    repo: Nheko-Reborn/nheko
    tags: true
- skip_cleanup: true
  overwrite: true
  provider: releases
  api_key:
    secure: "rDFG4DIwIG+A9R8seQ3SIXfWOWhJgJHlNQHtAsnfRrPOSIpI7kMebHLDO5sBPNaJ+9MH9acVTJZOabVLf0DdPqRsDUw/PN28aiiqbaH9+zAGOTxahaQ222Gz/ROf/iXvDoTDUnUzURqQUA0YlHy89Z1CnO7TKwlsYhA5A8n0biG7d8i7vQayvwYXfxlk7CouK+Y86ana4r54j1emGRg97p7BOhORibg54ZD520hN0Iif7EJM2hQDTWKZzTDdBt3mF1kBr7cBbuBHWuvE+eIFO3F3yi+u7ggHzw5FaAv245N4fhkpYUl/mSbhLrQG2NOnkglFCpQ2lLd6mWdXHwUNrxN/j+UPewmLg7CymY25zkiL43deDsT8KmpzYalmdaevCqEaX2VehuBzblmH4Re8wnXqBrab14fq0TNDfPqC+NKxy75mdxszbKBC55nTlTB+hsox43dvfvyXDSON4qAzwe9Q/tfp8mL2mehcM868vhw5cbNIskKT8SrhMwmA+sxoqnqLsmAjNVJVTgg6ppbMhjNMOBTndblRHfH6bxsgpTXPtnzC17o9Mw1WgF63eOWNYBEj2wW5ZvWX95Gvg5YzvsF178ipHZDqZfA62ShB3b89fcqN5SOxBsE8UYoHjQIHxQdWeKv23iFwmT8fWAOD8sKDcRyz0WCgidZ1/RjLqsU="
  file: nheko-${VERSION}.dmg
  on:
    condition: "$TRAVIS_OS_NAME == osx && $DEPLOYMENT == 1"
    repo: Nheko-Reborn/nheko
    tags: true