summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Reiter <reiter.christoph@gmail.com>2018-03-04 11:54:24 +0000
committerChristoph Reiter <reiter.christoph@gmail.com>2018-03-04 11:54:24 +0000
commit119d8f996f28c54e5cfc837e6988f6f40408bcb5 (patch)
tree790f367810d61e2f220dd6f6ff85ab48ff244775
parent5ca21f6dbba6e4f34eade0d3de51daf4d78537ab (diff)
parent81c4fa5d505ecd08018843d46e2c503a62075035 (diff)
downloadgtk+-119d8f996f28c54e5cfc837e6988f6f40408bcb5.tar.gz
Merge branch 'gitlab-ci-gtk-3-22' into 'gtk-3-22'
Add gitlab-ci support using a prebuilt docker image See merge request GNOME/gtk!18
-rw-r--r--.gitlab-ci.yml18
-rw-r--r--.gitlab-ci/Dockerfile60
-rwxr-xr-x.gitlab-ci/run-docker.sh19
-rwxr-xr-x.gitlab-ci/test-docker.sh6
4 files changed, 103 insertions, 0 deletions
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