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 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 doxygen graphviz 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 doxygen graphviz 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) 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 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