286eac393c
Simplifies the building and running of tests Also exports the proper env variables so that the googletest output is colored ctest can use env variables for some of its options so we can for example run CTEST_PROGRESS_OUTPUT=1 make check to run ctest with the --progress flag This also makes the travis test.sh script obsolete
95 lines
2.5 KiB
YAML
95 lines
2.5 KiB
YAML
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:
|
|
- 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
|