mirror of
https://github.com/libratbag/libratbag.git
synced 2026-11-07 15:14:38 +01:00
Better than the markdown we were using before, even though we're currently (ab)using the js/c++ domains for the structure. There is no DBus domain in sphinx yet. The main motivation was to get the enums into the documentation since they are exported ABI. Generating the documentation is quirky - we use doxygen to extract the comments from the C header file and then use XSLT to convert to .rst which sphinx can use. Still better than having to maintain even more copies of the enums. Since this is only of interest for maintainers that need to upload the documentation, it is turned off by default. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
162 lines
4.1 KiB
YAML
162 lines
4.1 KiB
YAML
# vim: set expandtab shiftwidth=2 tabstop=8:
|
|
libratbag_references:
|
|
default_settings: &default_settings
|
|
working_directory: ~/libratbag
|
|
environment:
|
|
LANG: C.UTF-8
|
|
build_default: &build_default
|
|
name: Build
|
|
command: |
|
|
rm -rf build
|
|
meson build ${MESON_PARAMS}
|
|
mesonconf build
|
|
ninja -v -C build ${NINJA_ARGS}
|
|
environment:
|
|
MESON_PARAMS: --prefix=/usr
|
|
build_and_test: &build_and_test
|
|
run:
|
|
<<: *build_default
|
|
name: Build and test
|
|
environment:
|
|
NINJA_ARGS: test
|
|
build_with_docs: &build_with_docs
|
|
run:
|
|
<<: *build_default
|
|
name: Build with documentation
|
|
environment:
|
|
MESON_PARAMS: -Ddocumentation=true
|
|
install: &install
|
|
run:
|
|
name: Installing
|
|
command: ninja -C build install
|
|
check_uninstall: &check_uninstall
|
|
run:
|
|
name: Checking if any files are left after uninstall
|
|
command: |
|
|
PREFIX=/root/test_install
|
|
# workaround until https://github.com/mesonbuild/meson/pull/2033 is merged
|
|
# and a new release appears
|
|
git clone https://github.com/whot/meson -b wip/remove-directories-on-uninstall
|
|
./meson/meson.py build_install --prefix=$PREFIX
|
|
ninja -C build_install install
|
|
ninja -C build_install uninstall
|
|
if [ -d $PREFIX ]
|
|
then
|
|
tree $PREFIX
|
|
exit 1
|
|
fi
|
|
export_logs: &export_logs
|
|
store_artifacts:
|
|
path: ~/libratbag/build/meson-logs
|
|
ninja_scan_build: &ninja_scan_build
|
|
run:
|
|
<<: *build_default
|
|
name: Ninja scan-build
|
|
environment:
|
|
NINJA_ARGS: scan-build
|
|
start_dbus: &start_dbus
|
|
run:
|
|
name: Start dbus daemon
|
|
command: |
|
|
mkdir /run/dbus
|
|
/usr/bin/dbus-daemon --system --fork
|
|
|
|
|
|
fedora_install: &fedora_install
|
|
run:
|
|
name: Install prerequisites
|
|
command: dnf install -y tree git gcc gcc-c++ meson check-devel libudev-devel libevdev-devel valgrind python3-gobject python3-evdev glib2-devel python3-lxml
|
|
|
|
|
|
fedora_settings: &fedora_settings
|
|
<<: *default_settings
|
|
steps:
|
|
- *fedora_install
|
|
- checkout
|
|
- *start_dbus
|
|
- *build_and_test
|
|
- *install
|
|
- *check_uninstall
|
|
- *export_logs
|
|
|
|
|
|
ubuntu_settings: &ubuntu_settings
|
|
<<: *default_settings
|
|
steps:
|
|
- run:
|
|
name: Install prerequisites
|
|
command: |
|
|
apt-get update
|
|
apt-get install -y software-properties-common
|
|
add-apt-repository universe
|
|
apt-get update
|
|
apt-get install -y tree git gcc g++ pkg-config meson check libudev-dev libevdev-dev libsystemd-dev valgrind python3-gi python3-evdev libglib2.0-dev python3-lxml
|
|
- checkout
|
|
- *start_dbus
|
|
- *build_and_test
|
|
- *install
|
|
- *check_uninstall
|
|
- *export_logs
|
|
|
|
|
|
scan_build_run: &scan_build_run
|
|
<<: *default_settings
|
|
steps:
|
|
- *fedora_install
|
|
- run:
|
|
name: Install clang and find
|
|
command: dnf install -y clang-analyzer findutils
|
|
- checkout
|
|
- *ninja_scan_build
|
|
- *export_logs
|
|
- run:
|
|
name: Check scan-build results
|
|
command: test ! -d ~/libratbag/build/meson-logs/scanbuild || test $(find ~/libratbag/build/meson-logs/scanbuild -maxdepth 0 ! -empty -exec echo "not empty" \; | wc -l) -eq 0 || (echo "Check scan-build results" && false)
|
|
|
|
doc_build: &doc_build
|
|
<<: *default_settings
|
|
steps:
|
|
- *fedora_install
|
|
- run:
|
|
name: Install documentation build-deps
|
|
command: dnf install -y python3-sphinx python3-sphinx_rtd_theme doxygen libxslt
|
|
- checkout
|
|
- *build_with_docs
|
|
- *export_logs
|
|
- store_artifacts:
|
|
path: ~/libratbag/build/doc/html
|
|
|
|
version: 2
|
|
jobs:
|
|
fedora_rawhide:
|
|
<<: *fedora_settings
|
|
docker:
|
|
- image: fedora:rawhide
|
|
fedora_latest:
|
|
<<: *fedora_settings
|
|
docker:
|
|
- image: fedora:latest
|
|
ubuntu_17_04:
|
|
<<: *ubuntu_settings
|
|
docker:
|
|
- image: ubuntu:zesty
|
|
doc_build:
|
|
<<: *doc_build
|
|
docker:
|
|
- image: fedora:latest
|
|
scan_build:
|
|
<<: *scan_build_run
|
|
docker:
|
|
- image: fedora:latest
|
|
|
|
|
|
workflows:
|
|
version: 2
|
|
compile_and_test:
|
|
jobs:
|
|
# - fedora_rawhide
|
|
- scan_build
|
|
- ubuntu_17_04
|
|
- fedora_latest
|
|
- doc_build
|