# vim: set expandtab shiftwidth=2 tabstop=8 textwidth=0: libinput_jobs: default_settings: &default_settings working_directory: ~/libinput # Define a couple of standardized build targets # that we call from every build container build_and_test_default: &build_and_test_default name: Build command: | rm -rf build meson build ${MESON_PARAMS} meson configure build ninja -v -C build ${NINJA_ARGS} environment: MESON_PARAMS: --prefix=/opt/libinput build_and_test: &build_and_test run: <<: *build_and_test_default build_no_libwacom: &build_no_libwacom run: <<: *build_and_test_default name: Build - No libwacom environment: MESON_PARAMS: -Dlibwacom=false build_no_debug_gui: &build_no_debug_gui run: <<: *build_and_test_default name: Build - No debug-gui environment: MESON_PARAMS: -Ddebug-gui=false build_no_tests: &build_no_tests run: <<: *build_and_test_default name: Build - No tests environment: MESON_PARAMS: -Dtests=false build_no_docs: &build_no_docs run: <<: *build_and_test_default name: Build - No docs environment: MESON_PARAMS: -Ddocumentation=false build_dist: &build_dist run: <<: *build_and_test_default name: Build - ninja dist environment: NINJA_ARGS: dist ninja_scan_build: &ninja_scan_build run: <<: *build_and_test_default name: Ninja scan-build environment: NINJA_ARGS: scan-build install: &install run: name: Installing command: ninja -v -C build install export_logs: &export_logs store_artifacts: path: ~/libinput/build/meson-logs fedora_install: &fedora_install run: name: Install prerequisites command: | dnf upgrade -y libsolv dnf install -y git gcc gcc-c++ meson check-devel libudev-devel libevdev-devel doxygen graphviz valgrind binutils libwacom-devel cairo-devel gtk3-devel glib2-devel mtdev-devel fedora_build_all: &fedora_build_all <<: *default_settings steps: - *fedora_install - checkout - *build_and_test - *install - *export_logs - *build_no_libwacom - *build_no_debug_gui - *build_no_tests - *build_no_docs - *build_dist ubuntu_install: &ubuntu_install 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 git gcc g++ meson check libudev-dev libevdev-dev doxygen graphviz valgrind binutils libwacom-dev libcairo2-dev libgtk-3-dev libglib2.0-dev libmtdev-dev ubuntu_build_all: &ubuntu_build_all <<: *default_settings steps: - *ubuntu_install - checkout - *build_and_test - *install - *export_logs - *build_no_libwacom - *build_no_debug_gui - *build_no_tests - *build_no_docs - *build_dist 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 ~/libinput/build/meson-logs/scanbuild || test $(find ~/libinput/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_latest: <<: *fedora_build_all docker: - image: fedora:latest ubuntu_17_10: <<: *ubuntu_build_all docker: - image: ubuntu:artful scan_build: <<: *scan_build_run docker: - image: fedora:latest workflows: version: 2 compile: jobs: - fedora_latest - scan_build - ubuntu_17_10