sudo: required
services:
  - docker

language: cpp
os:
  - linux
  - osx

compiler:
  - clang
  - gcc

cache:
    directories:
      - $HOME/.cache

git:
    depth: 100500

env:
    global:
      - PACKAGECLOUD_REPO=1_8
    matrix:
      - TARGET=source
      - TARGET=test
      - TARGET=coverage
      - OS=el DIST=6
      - OS=el DIST=7
      - OS=fedora DIST=24
      - OS=fedora DIST=25
      - OS=ubuntu DIST=precise
      - OS=ubuntu DIST=trusty
      - OS=ubuntu DIST=xenial
      - OS=ubuntu DIST=yakkety
      - OS=debian DIST=wheezy
      - OS=debian DIST=jessie
      - OS=debian DIST=stretch

matrix:
    allow_failures:
      - TARGET=coverage
#      - env: OS=el DIST=6
#      - env: OS=el DIST=7
#      - env: OS=fedora DIST=24
#      - env: OS=fedora DIST=25
#      - env: OS=ubuntu DIST=precise
#      - env: OS=ubuntu DIST=trusty
#      - env: OS=ubuntu DIST=xenial
#      - env: OS=ubuntu DIST=yakkety
#      - env: OS=debian DIST=wheezy
#      - env: OS=debian DIST=jessie
#      - env: OS=debian DIST=stretch
    exclude:
      - env: OS=el DIST=6
        compiler: clang
      - env: OS=el DIST=7
        compiler: clang
      - env: OS=fedora DIST=24
        compiler: clang
      - env: OS=fedora DIST=25
        compiler: clang
      - env: OS=ubuntu DIST=precise
        compiler: clang
      - env: OS=ubuntu DIST=trusty
        compiler: clang
      - env: OS=ubuntu DIST=xenial
        compiler: clang
      - env: OS=ubuntu DIST=yakkety
        compiler: clang
      - env: OS=debian DIST=wheezy
        compiler: clang
      - env: OS=debian DIST=jessie
        compiler: clang
      - env: OS=debian DIST=stretch
        compiler: clang
      - env: TARGET=source
        compiler: clang
      - env: TARGET=coverage
        compiler: clang
      - env: OS=el DIST=6
        os: osx
      - env: OS=el DIST=7
        os: osx
      - env: OS=fedora DIST=24
        os: osx
      - env: OS=fedora DIST=25
        os: osx
      - env: OS=ubuntu DIST=precise
        os: osx
      - env: OS=ubuntu DIST=trusty
        os: osx
      - env: OS=ubuntu DIST=xenial
        os: osx
      - env: OS=ubuntu DIST=yakkety
        os: osx
      - env: OS=debian DIST=wheezy
        os: osx
      - env: OS=debian DIST=jessie
        os: osx
      - env: OS=debian DIST=stretch
        os: osx
      - env: TARGET=source
        os: osx
      - env: TARGET=coverage
        os: osx
      - os: osx
        compiler: gcc

script:
  - make -f .travis.mk ${TARGET}

before_deploy:
  - ls -l build/

deploy:
  # Deploy packages to PackageCloud
  - provider: packagecloud
    username: "${PACKAGECLOUD_USER}"
    repository: "${PACKAGECLOUD_REPO}"
    token: "${PACKAGECLOUD_TOKEN}"
    dist: "${OS}/${DIST}"
    package_glob: build/*.{rpm,deb,dsc}
    skip_cleanup: true
    on:
      branch: "1.8"
      condition: -n "${OS}" && -n "${DIST}" && -n "${PACKAGECLOUD_TOKEN}"
  # Deploy sources to SFTP
  - provider: script
    script: ./packpack/tools/sftp ${TRAVIS_BRANCH}/src build/*.tar.gz
    skip_cleanup: true
    on:
      branch: "1.8"
      condition: "x${TARGET} = xsource"

notifications:
  email:
    recipients:
      - build@tarantool.org
    on_success: change
    on_failure: always
