sudo: required dist: trusty language: cpp env: global: - JOBS=4 - MAKEFLAGS="-j ${JOBS}" - POLYBAR_BUILD_TYPE="compile" # Build configurations can either not specify anything for 'addon' and use this # default list of packages. Or they can pick and choose which package groups to # install addons: apt: sources: &sources - ubuntu-toolchain-r-test packages: - &gcc - g++-5 - gcc-5 - &clang - libstdc++-5-dev - &base_deps - libxcb-composite0-dev - libxcb-ewmh-dev - libxcb-icccm4-dev - libxcb-image0-dev - libxcb-randr0-dev - libxcb-util0-dev - python-xcbgen - xcb-proto - &optional_deps - libxcb-xkb-dev - libxcb-cursor-dev - libxcb1-dev - xutils-dev - i3-wm - libasound2-dev - libpulse-dev - libcairo2-dev - libiw-dev - libmpdclient-dev script: source ${TRAVIS_BUILD_DIR}/common/travis/build.sh matrix: include: - compiler: clang env: BUILD_TYPE=Release addons: {apt: {sources: *sources, packages: [*clang, *base_deps, *optional_deps]}} - compiler: gcc env: BUILD_TYPE=Coverage POLYBAR_BUILD_TYPE=tests BUILD_TESTS=ON addons: {apt: {sources: *sources, packages: [*gcc, *base_deps, *optional_deps]}} 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 addons: {apt: {sources: *sources, packages: [*gcc, *base_deps, *optional_deps]}} # Minimal build, contains no optional dependencies. This makes sure that # we properly remove files from compilation that depend on libraries that # are not installed - compiler: gcc env: BUILD_TYPE=Release POLYBAR_BUILD_TYPE=minimal addons: {apt: {sources: *sources, packages: [*gcc, *base_deps]}} 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