sudo: required dist: xenial 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: packages: - &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: # Only builds the documentation - language: generic # Doesn't actually do anything, just used for the indicator on travis compiler: Sphinx addons: {apt: {packages: [python3-sphinx]}} before_script: - mkdir -p doc/build - cd doc/build - cmake .. script: make doc # Disable unnecessary commands install: cache: - compiler: clang env: BUILD_TYPE=Release addons: {apt: {packages: [*base_deps, *optional_deps]}} - compiler: gcc env: BUILD_TYPE=Coverage POLYBAR_BUILD_TYPE=tests BUILD_TESTS=ON addons: {apt: {packages: [*base_deps, *optional_deps]}} script: make check 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: {packages: [*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: {packages: [*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/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