From 81c4fa5d505ecd08018843d46e2c503a62075035 Mon Sep 17 00:00:00 2001 From: Christoph Reiter Date: Tue, 13 Feb 2018 17:21:18 +0100 Subject: [PATCH] Add gitlab-ci support using a prebuilt docker image This uses autotools and just calls make --- .gitlab-ci.yml | 18 ++++++++++++ .gitlab-ci/Dockerfile | 60 +++++++++++++++++++++++++++++++++++++++ .gitlab-ci/run-docker.sh | 19 +++++++++++++ .gitlab-ci/test-docker.sh | 6 ++++ 4 files changed, 103 insertions(+) create mode 100644 .gitlab-ci.yml create mode 100644 .gitlab-ci/Dockerfile create mode 100755 .gitlab-ci/run-docker.sh create mode 100755 .gitlab-ci/test-docker.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000000..a2e32a2dfa --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,18 @@ +image: lazka/gitlab-gtk-3-22:v1 + +stages: + - build + +before_script: + - mkdir -p _ccache + - export CCACHE_BASEDIR=${PWD} + - export CCACHE_DIR=${PWD}/_ccache + +cache: + paths: + - _ccache/ + +build: + stage: build + script: + - bash -x ./.gitlab-ci/test-docker.sh diff --git a/.gitlab-ci/Dockerfile b/.gitlab-ci/Dockerfile new file mode 100644 index 0000000000..f0c5372062 --- /dev/null +++ b/.gitlab-ci/Dockerfile @@ -0,0 +1,60 @@ +FROM fedora:27 + +RUN dnf -y install \ + adwaita-icon-theme \ + atk-devel \ + at-spi2-atk-devel \ + avahi-gobject-devel \ + cairo-devel \ + cairo-gobject-devel \ + ccache \ + colord-devel \ + cups-devel \ + fribidi-devel \ + gcc \ + gcc-c++ \ + gdk-pixbuf2-devel \ + gdk-pixbuf2-modules \ + gettext \ + gettext-devel \ + git \ + glib2-devel \ + gobject-introspection-devel \ + graphene-devel \ + gtk-doc \ + hicolor-icon-theme \ + itstool \ + json-glib-devel \ + libepoxy-devel \ + libmount-devel \ + librsvg2 \ + libXcomposite-devel \ + libXcursor-devel \ + libXcursor-devel \ + libXdamage-devel \ + libXfixes-devel \ + libXi-devel \ + libXinerama-devel \ + libxkbcommon-devel \ + libXrandr-devel \ + libXrender-devel \ + make \ + mesa-libEGL-devel \ + mesa-libwayland-egl-devel \ + meson \ + pango-devel \ + redhat-rpm-config \ + vulkan-devel \ + wayland-devel \ + wayland-protocols-devel \ + xorg-x11-server-Xvfb + +ARG HOST_USER_ID=5555 +ENV HOST_USER_ID ${HOST_USER_ID} +RUN useradd -u $HOST_USER_ID -ms /bin/bash user + +USER user +WORKDIR /home/user + +ENV LANG C.utf8 +ENV PATH="/usr/lib64/ccache:${PATH}" diff --git a/.gitlab-ci/run-docker.sh b/.gitlab-ci/run-docker.sh new file mode 100755 index 0000000000..699d2093da --- /dev/null +++ b/.gitlab-ci/run-docker.sh @@ -0,0 +1,19 @@ +#!/bin/bash +# +# This script builds an image from the Dockerfile, starts a container with +# the parent directory mounted as working directory and start a bash session +# there so you can test things. +# Once you are happy you can push it to the docker hub: +# sudo docker push "${TAG}" + +set -e + +TAG="lazka/gitlab-gtk-3-22:v1" + +# HOST_USER_ID gets used to create a user with the same ID so that files +# created in the mounted volume have the same owner +sudo docker build \ + --build-arg HOST_USER_ID="$UID" --tag "${TAG}" --file "Dockerfile" . +sudo docker run \ + --rm --volume "$(pwd)/..:/home/user/app" --workdir "/home/user/app" \ + --tty --interactive "${TAG}" bash diff --git a/.gitlab-ci/test-docker.sh b/.gitlab-ci/test-docker.sh new file mode 100755 index 0000000000..da7b4d5c10 --- /dev/null +++ b/.gitlab-ci/test-docker.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +set -e + +./autogen.sh +make -j8