sudo: required dist: focal 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 - python3-xcbgen - xcb-proto - &optional_deps - libxcb-xkb-dev - libxcb-cursor-dev - libxcb-xrm-dev - libxcb1-dev - xutils-dev - i3-wm - libjsoncpp-dev - 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 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 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: - " %{repository_slug}(%{branch})#%{build_number} | \"%{commit_subject}\" by %{author} | Commit #%{commit} %{result}: %{build_url}" use_notice: true on_success: change on_failure: change webhooks: urls: # For the https://gitter.im/polybar/polybar gitter room - https://webhooks.gitter.im/e/10bdbe25961312646ace on_success: change on_failure: always on_start: never