From fa6069adca19e83c2f5e8fb38e55dcee9c26cfeb Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Tue, 5 Jun 2018 22:20:40 +0100 Subject: [PATCH] Add .gitlab-ci.yml Add a GitLab CI configuration which tests building, 'make check', and 'make distcheck' of the tree inside a Debian Stretch container. The choice of distribution base was arbitrary and may easily be changed. As the version of wayland-protocols available is not sufficiently new, we clone and build our own local version first. libwayland is new enough, however we could potentially reuse the artifacts generated by the Wayland CI job. When commits are pushed to upstream, the commits will run this CI pipeline to run these tests, and capture the result as an artifact bundle, including the compiled binaries and full test suite logs. Results can be seen at: https://gitlab.freedesktop.org/wayland/weston/pipelines/ Signed-off-by: Daniel Stone --- .gitlab-ci.yml | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..80b9927 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,49 @@ +image: debian:stretch + +stages: + - build + +before_script: + - echo 'path-exclude=/usr/share/doc/*' > /etc/dpkg/dpkg.cfg.d/99-exclude-cruft + - echo 'path-exclude=/usr/share/man/*' >> /etc/dpkg/dpkg.cfg.d/99-exclude-cruft + - echo '#!/bin/sh' > /usr/sbin/policy-rc.d + - echo 'exit 101' >> /usr/sbin/policy-rc.d + - chmod +x /usr/sbin/policy-rc.d + - apt-get update + - apt-get -y --no-install-recommends install build-essential automake autoconf libtool pkg-config libexpat1-dev libffi-dev libxml2-dev libpixman-1-dev libpng-dev libjpeg-dev libcolord-dev mesa-common-dev libglu1-mesa-dev libegl1-mesa-dev libgles2-mesa-dev libwayland-dev libxcb1-dev libxcb-composite0-dev libxcb-xfixes0-dev libxcb-xkb-dev libx11-xcb-dev libx11-dev libudev-dev libgbm-dev libxkbcommon-dev libcairo2-dev libpango1.0-dev libgdk-pixbuf2.0-dev libxcursor-dev libmtdev-dev libpam0g-dev libvpx-dev libsystemd-dev libinput-dev libwebp-dev libjpeg-dev libva-dev liblcms2-dev git + - mkdir -p /tmp/.X11-unix + - chmod 777 /tmp/.X11-unix + +build-native: + stage: build + script: + - git clone --depth=1 git://anongit.freedesktop.org/git/wayland/wayland-protocols + - export WAYLAND_PROTOCOLS_DIR="$(pwd)/prefix-wayland-protocols" + - export PKG_CONFIG_PATH="$WAYLAND_PROTOCOLS_DIR/share/pkgconfig:$PKG_CONFIG_PATH" + - export MAKEFLAGS="-j4" + - cd wayland-protocols + - git show -s HEAD + - mkdir build + - cd build + - ../autogen.sh --prefix="$WAYLAND_PROTOCOLS_DIR" + - make install + - cd ../../ + - export XDG_RUNTIME_DIR="$(mktemp -p $(pwd) -d xdg-runtime-XXXXXX)" + - export BUILD_ID="weston-$CI_JOB_NAME_$CI_COMMIT_SHA-$CI_JOB_ID" + - export PREFIX="$(pwd)/prefix-$BUILD_ID" + - export BUILDDIR="$(pwd)/build-$BUILD_ID" + - mkdir "$BUILDDIR" "$PREFIX" + - cd "$BUILDDIR" + - ../autogen.sh --prefix="$PREFIX" --disable-setuid-install --enable-xwayland --enable-x11-compositor --enable-drm-compositor --enable-wayland-compositor --enable-headless-compositor --enable-fbdev-compositor --disable-rdp-compositor --enable-screen-sharing --enable-vaapi-recorder --enable-simple-clients --enable-simple-egl-clients --enable-simple-dmabuf-drm-client --enable-simple-dmabuf-v4l-client --enable-clients --enable-resize-optimization --enable-weston-launch --enable-fullscreen-shell --enable-colord --enable-dbus --enable-systemd-login --enable-junit-xml --enable-ivi-shell --enable-wcap-tools --disable-libunwind --enable-demo-clients-install --enable-lcms --with-cairo=image + - make all + - make check + - make install + - make distcheck + artifacts: + name: weston-$CI_COMMIT_SHA-$CI_JOB_ID + when: always + paths: + - build-*/weston-*.tar.xz + - build-*/*.log + - build-*/logs + - prefix-* -- 2.7.4