diff options
author | Christoph Reiter <reiter.christoph@gmail.com> | 2018-03-04 11:54:24 +0000 |
---|---|---|
committer | Christoph Reiter <reiter.christoph@gmail.com> | 2018-03-04 11:54:24 +0000 |
commit | 119d8f996f28c54e5cfc837e6988f6f40408bcb5 (patch) | |
tree | 790f367810d61e2f220dd6f6ff85ab48ff244775 | |
parent | 5ca21f6dbba6e4f34eade0d3de51daf4d78537ab (diff) | |
parent | 81c4fa5d505ecd08018843d46e2c503a62075035 (diff) | |
download | gtk+-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.yml | 18 | ||||
-rw-r--r-- | .gitlab-ci/Dockerfile | 60 | ||||
-rwxr-xr-x | .gitlab-ci/run-docker.sh | 19 | ||||
-rwxr-xr-x | .gitlab-ci/test-docker.sh | 6 |
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 |