rofi/.travis.yml

151 lines
4.7 KiB
YAML

os: linux
dist: bionic
language: c
env:
global:
# The next declaration is the encrypted COVERITY_SCAN_TOKEN, created via
# the "travis encrypt" command using the project repo's public key
- secure: "Uodrn3x36plX2yk4+c7eimCuv7j6p6n1XCNbNEYxibRX77730eQMCVS0BvM40OgD7m5K9s2hIQaMV7EMj3qKuRmemULDVJVTgNd1fbx6t4BhYh+Hrf6FhsNcm9nFxvQQrdJAVSOwIAlrUilVFotDRt9qKqLwwZiBKIs5gBPcHQY="
addons:
coverity_scan:
project:
name: "DaveDavenport/rofi"
description: "Build submitted via Travis CI"
notification_email: qball@gmpclient.org
# TODO: What do these actually do?
build_command_prepend: "meson setup build"
build_command: "ninja -C build"
branch_pattern: coverity_scan
apt:
packages:
- discount
- doxygen
- fluxbox
- gdb
- graphviz
- jq
- lcov
- libpango1.0-dev
- libstartup-notification0-dev
- libxcb-ewmh-dev
- libxcb-icccm4-dev
- libxcb-randr0-dev
- libxcb-util0-dev
- libxcb-xinerama0-dev
- libxcb-xkb-dev
- libxcb-xrm-dev
- libxcb-cursor-dev
- libxkbcommon-dev
- libxkbcommon-dev
- libxkbcommon-x11-dev
- ninja-build
- python3-pip
- python3-setuptools
- python3-wheel
- texi2html
- texinfo
- xdotool
- xfonts-base
- xterm
- xutils-dev
# TODO: Potentially switch to coverxygen (active project with the same goal) at
# some point in the future?
before_install:
# doxy-coverage is not packaged in Ubuntu 18.04 (Bionic), clone the helper
# scripts manually:
- git clone https://github.com/alobbs/doxy-coverage
# Ubuntu 18.04 ships an outdated version of check. Install a more recent
# version instead:
- curl -L https://github.com/libcheck/check/releases/download/0.14.0/check-0.14.0.tar.gz | tar xzf -
- cd check-0.14.0
- ./configure
- make
# Disable tests for non-"debug" runs (as these tests can take several minutes
# to complete):
#- make check
- sudo make install
- sudo ldconfig
- cd ..
# YAML anchor, ignored by Travis CI (albeit present in the JSON render):
.autotools: &autotools
before_script: &autotools_before_script
# prettier-ignore
# Generate the configure script:
- autoreconf --install
# Make the build directory:
- mkdir build
# Change into the build directory:
- cd build
# Configure the build directory
- ../configure
# TODO: Fix X11 tests (and check whether or not changing the user's resource
# limit is still required for the X11 tests).
script: &autotools_script # Build the project:
- make
# Run tests:
- make distcheck
# Code coverage:
- make doxy 2>&1 > doxygen.log
# Check for warnings in doxygen.log:
- test $(grep -c warning doxygen.log) -eq 0
- ../doxy-coverage/doxy-coverage.py doc/html/xml/
# YAML anchor, ignored by Travis CI (albeit present in the JSON render):
.meson: &meson
install: &meson_install
# Ubuntu's meson version is outdated. Use pip to install a more recent
# release:
- pip3 install --user meson
# ~/.local/bin is not a part of $PATH by default. Update $PATH to include it:
- PATH="$PATH:$HOME/.local/bin"
before_script:
&meson_before_script # Configure the build directory with meson:
- meson setup build -Db_coverage=true
# TODO: Fix X11 tests (and check whether or not changing the user's resource
# limit is still required for the X11 tests).
script: &meson_script # Build the project:
- ninja -C build
# Run tests:
- ninja -C build test
#- ulimit -c unlimited
#- ninja -C build test-x
- ninja -C build doc/html 2>&1 > doxygen.log
- test $(grep -c warning doxygen.log) -eq 0
- ./doxy-coverage/doxy-coverage.py build/doc/html/xml/
after_success:
- bash <(curl -s https://codecov.io/bash)
# Travis CI doesn't propagate the compiler key to individual jobs. Define
# a _single_ compiler for each job, as a list will only result in the first
# compiler being used!
jobs:
include:
- name: "Autotools - Clang"
compiler: clang
# Merge keys from the .autotools map:
<<: *autotools
- name: "Autotools - GCC"
compiler: gcc
# Merge keys from the .autotools map:
<<: *autotools
- name: "Meson - Clang"
compiler: clang
# Merge keys from the .meson map:
<<: *meson
- name: "Meson - GCC"
compiler: gcc
# Merge keys from the .meson map:
<<: *meson
notifications:
webhooks:
urls:
- secure: "AqDM5SkWJPSBeCiyGdXzHYLnFCML/vKxWW/0wE00ocX+97Fa5ixeU7apMJ0OMZ0ZQVXG96xVtlJ513ZSpnRYHx6FF+Ivvw5pYeZjKHqtxThEhOueW1YynYWMX7HJrA4P19ollqRLrtsJqG6x7BhVEnIyhyu9eXtgj6hiI70F0SE="
on_success: change
# vim: et sw=2 ts=2