sudo: required
dist: trusty
language: cpp

env:
  global:
    - JOBS=4
    - MAKEFLAGS="-j ${JOBS}"
    - POLYBAR_BUILD_TYPE="compile"

script: source ${TRAVIS_BUILD_DIR}/common/travis/build.sh

matrix:
  include:
    - compiler: clang
      env: BUILD_TYPE=Release

    - compiler: clang
      env: BUILD_TYPE=Debug

    - compiler: gcc
      env: BUILD_TYPE=Debug POLYBAR_BUILD_TYPE=tests BUILD_TESTS=ON
      script: ${TRAVIS_BUILD_DIR}/common/travis/tests.sh
      after_success:
        - cd ${TRAVIS_BUILD_DIR}
        - bash <(curl -s https://codecov.io/bash) -F unittests -a "-ap" -Z || echo "Codecov did not collect coverage reports"

    - compiler: gcc
      env: BUILD_TYPE=Release

    - compiler: gcc
      env: BUILD_TYPE=Debug

addons:
  apt:
    sources:
      - ubuntu-toolchain-r-test
    packages:
      - g++-5
      - gcc-5
      - i3-wm
      - libasound2-dev
      - libpulse-dev
      - libcairo2-dev
      - libiw-dev
      - libmpdclient-dev
      - libxcb-ewmh-dev
      - libxcb-icccm4-dev
      - libxcb-image0-dev
      - libxcb-randr0-dev
      - libxcb-util0-dev
      - libxcb-xkb-dev
      - libxcb-cursor-dev
      - libxcb1-dev
      - python-xcbgen
      - xcb-proto
      - xutils-dev

cache:
  ccache: true
  apt: true
  directories:
    - ${TRAVIS_BUILD_DIR}/deps/xcb-util-xrm

install:
  - DEPS_DIR="${TRAVIS_BUILD_DIR}/deps"
  - mkdir -p "${DEPS_DIR}" && cd "${DEPS_DIR}"
  - source ${TRAVIS_BUILD_DIR}/common/travis/environment.sh
  - source ${TRAVIS_BUILD_DIR}/common/travis/install_xcb_xrm.sh

before_script:
  - source ${TRAVIS_BUILD_DIR}/common/travis/summary.sh
  - source ${TRAVIS_BUILD_DIR}/common/travis/configure.sh

# Only fetch the newest 5 commits instead of 50
git:
  depth: 5

notifications:
  email: false
  irc:
    channels:
      - "irc.freenode.org#polybar"
    template:
      - "%{author} pushed #%{commit} \"%{commit_subject}\" to %{repository_name}/%{branch}"
      - "Build #%{build_number} %{result} / %{build_url} (diff: %{compare_url})"
    use_notice: true
    on_success: change
    on_failure: change