2020-04-30 07:09:28 +00:00
|
|
|
os: linux
|
|
|
|
dist: bionic
|
2014-08-28 19:29:06 +00:00
|
|
|
language: c
|
2016-10-17 16:37:56 +00:00
|
|
|
env:
|
|
|
|
global:
|
2020-04-30 07:09:28 +00:00
|
|
|
# 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="
|
2016-10-17 16:37:56 +00:00
|
|
|
|
2015-07-16 19:39:40 +00:00
|
|
|
addons:
|
2020-04-30 07:09:28 +00:00
|
|
|
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
|
|
|
|
- libxkbcommon-dev
|
|
|
|
- libxkbcommon-dev
|
|
|
|
- libxkbcommon-x11-dev
|
|
|
|
- ninja-build
|
|
|
|
- python3-pip
|
|
|
|
- python3-setuptools
|
|
|
|
- python3-wheel
|
|
|
|
- texi2html
|
|
|
|
- texinfo
|
|
|
|
- xdotool
|
|
|
|
- xfonts-base
|
|
|
|
- xterm
|
|
|
|
- xutils-dev
|
2014-08-28 19:19:46 +00:00
|
|
|
|
2020-04-30 07:09:28 +00:00
|
|
|
# TODO: Potentially switch to coverxygen (active project with the same goal) at
|
|
|
|
# some point in the future?
|
2016-03-20 14:23:37 +00:00
|
|
|
before_install:
|
2020-04-30 07:09:28 +00:00
|
|
|
# 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 ..
|
2016-10-17 16:37:56 +00:00
|
|
|
|
2020-04-30 07:09:28 +00:00
|
|
|
# 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:
|
2017-04-30 16:02:39 +00:00
|
|
|
- make
|
2020-04-30 07:09:28 +00:00
|
|
|
# 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/
|
2014-08-28 19:19:46 +00:00
|
|
|
|
2020-04-30 07:09:28 +00:00
|
|
|
# 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:
|
2020-05-14 10:44:59 +00:00
|
|
|
- meson setup build -Db_coverage=true
|
2020-04-30 07:09:28 +00:00
|
|
|
# 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:
|
2017-05-04 11:45:11 +00:00
|
|
|
- ninja -C build
|
2020-04-30 07:09:28 +00:00
|
|
|
# Run tests:
|
2017-05-04 11:45:11 +00:00
|
|
|
- ninja -C build test
|
2020-04-30 07:09:28 +00:00
|
|
|
#- ulimit -c unlimited
|
|
|
|
#- ninja -C build test-x
|
2017-05-04 11:45:11 +00:00
|
|
|
- ninja -C build doc/html 2>&1 > doxygen.log
|
2016-11-15 21:12:53 +00:00
|
|
|
- test $(grep -c warning doxygen.log) -eq 0
|
2017-05-04 11:45:11 +00:00
|
|
|
- ./doxy-coverage/doxy-coverage.py build/doc/html/xml/
|
2015-12-31 18:04:38 +00:00
|
|
|
|
|
|
|
after_success:
|
2020-04-30 07:09:28 +00:00
|
|
|
- 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
|
2016-10-17 16:37:56 +00:00
|
|
|
|
2017-07-14 21:18:29 +00:00
|
|
|
notifications:
|
2020-04-30 07:09:28 +00:00
|
|
|
webhooks:
|
|
|
|
urls:
|
|
|
|
- secure: "AqDM5SkWJPSBeCiyGdXzHYLnFCML/vKxWW/0wE00ocX+97Fa5ixeU7apMJ0OMZ0ZQVXG96xVtlJ513ZSpnRYHx6FF+Ivvw5pYeZjKHqtxThEhOueW1YynYWMX7HJrA4P19ollqRLrtsJqG6x7BhVEnIyhyu9eXtgj6hiI70F0SE="
|
|
|
|
on_success: change
|
|
|
|
# vim: et sw=2 ts=2
|