d43a4a8d9d
They're not really any different from the release builds and only elongate the build process. Also now that we have a minimal build, we would have more than five build configurations which would make travis limit itself to five concurrent builds, letting the last build wait on the others. Also it's just unnecessary load on the travis servers
102 lines
2.8 KiB
YAML
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
|