diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 000000000..35c667558 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,38 @@ +image: ebassi/gitlab-glib:latest + +stages: + - build + +build-job: + stage: build + script: + - meson --prefix /usr --libdir /usr/lib64 --buildtype debug --werror -Dsystemtap=true -Ddtrace=true _build . + - cd _build + - ninja + - meson test + except: + - tags + artifacts: + when: on_failure + name: "glib-_${CI_COMMIT_REF_NAME}" + paths: + - "${CI_PROJECT_DIR}/_build/meson-logs" + +dist-job: + stage: build + only: + - tags + script: + - meson --prefix /usr --libdir /usr/lib64 --buildtype release -Dgtk_doc=true -Dman=true _build . + - cd _build + - ninja dist + - ninja glib-doc + - tar -c -f "glib-docs-$CI_COMMIT_TAG.tar.xz" -C docs/reference/glib html + - tar -c -f "gobject-docs-$CI_COMMIT_TAG.tar.xz" -C docs/reference/gobject html + - tar -c -f "gio-docs-$CI_COMMIT_TAG.tar.xz" -C docs/reference/gio html + artifacts: + paths: + - "${CI_PROJECT_DIR}/_build/glib-docs.tar.xz" + - "${CI_PROJECT_DIR}/_build/gobject-docs.tar.xz" + - "${CI_PROJECT_DIR}/_build/gio-docs.tar.xz" + - "${CI_PROJECT_DIR}/_build/meson-dist/glib-*.tar.xz" diff --git a/.gitlab-ci/Dockerfile b/.gitlab-ci/Dockerfile new file mode 100644 index 000000000..69434ca09 --- /dev/null +++ b/.gitlab-ci/Dockerfile @@ -0,0 +1,31 @@ +FROM fedora:27 + +RUN dnf -y install \ + desktop-file-utils \ + elfutils-libelf-devel \ + gcc \ + gcc-c++ \ + gettext \ + git \ + glibc-devel \ + glibc-headers \ + gtk-doc \ + itstool \ + libattr-devel \ + libffi-devel \ + libmount-devel \ + libselinux-devel \ + libxslt \ + meson \ + pcre-devel \ + systemtap-sdt-devel \ + zlib-devel + +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 diff --git a/.gitlab-ci/run-docker.sh b/.gitlab-ci/run-docker.sh new file mode 100755 index 000000000..940456fad --- /dev/null +++ b/.gitlab-ci/run-docker.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +set -e + +sudo docker build --build-arg HOST_USER_ID="$UID" --tag "gitlab-glib" \ + --file "Dockerfile" . +sudo docker run --rm \ + --volume "$(pwd)/..:/home/user/app" --workdir "/home/user/app" \ + --tty --interactive "gitlab-glib" bash