polybar/.travis.yml

102 lines
2.8 KiB
YAML

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-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=Debug 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