[gtk/gtk-3-22: 1/2] Add gitlab-ci support using a prebuilt docker image



commit 81c4fa5d505ecd08018843d46e2c503a62075035
Author: Christoph Reiter <creiter src gnome org>
Date:   Tue Feb 13 17:21:18 2018 +0100

    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(+)
---
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


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]