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
This commit is contained in:
Christoph Reiter 2018-03-04 11:54:24 +00:00
commit 119d8f996f
4 changed files with 103 additions and 0 deletions

18
.gitlab-ci.yml Normal file
View File

@ -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

60
.gitlab-ci/Dockerfile Normal file
View File

@ -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}"

19
.gitlab-ci/run-docker.sh Executable file
View File

@ -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

6
.gitlab-ci/test-docker.sh Executable file
View File

@ -0,0 +1,6 @@
#!/bin/bash
set -e
./autogen.sh
make -j8