[gnome-settings-daemon/wip/claudio/CI: 4/4] CI: create and save Docker images in GNOME GitLab
- From: Benjamin Berg <bberg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-settings-daemon/wip/claudio/CI: 4/4] CI: create and save Docker images in GNOME GitLab
- Date: Mon, 4 Feb 2019 10:33:43 +0000 (UTC)
commit 9af679f7a5276f60c821dbe2917617e5a66e6f70
Author: Claudio André <claudioandre br gmail com>
Date: Thu Jul 12 17:58:22 2018 -0300
CI: create and save Docker images in GNOME GitLab
.gitlab-ci.yml | 64 ++++++++++++++++++++++++++
build-aux/ci/Dockerfile.arm64v8.fedora.rawhide | 24 ++++++++++
build-aux/ci/Dockerfile.fedora.rawhide | 22 +++++++++
build-aux/ci/Dockerfile.ppc64le.fedora.rawhide | 24 ++++++++++
4 files changed, 134 insertions(+)
---
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 2e98381b..df9f5474 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -156,3 +156,67 @@ msan:
variables:
BUILD_OPTS: "-Db_sanitize=memory"
CC: "clang"
+
+#############################################
+# Create CI Docker Images #
+#############################################
+.Docker image template: &create_docker_image
+ image: docker:latest
+ stage: delivery
+ services:
+ - docker:dind
+ only:
+ variables:
+ - $CRON_TASK == "BUILD_CI_IMAGES"
+
+ script:
+ # Skip the build (if requested)
+ - |
+ if [[ -z "${CI_COMMIT_MESSAGE##*[skip images]*}" && -z "${CI_COMMIT_MESSAGE##*[$NAME]*}" ]]; then
+ echo "== Nothing to do =="
+ exit 0
+ fi
+
+ # Get multiarch stuff
+ - |
+ if [[ -n "${TARGET_ARCH}" ]]; then
+ docker run --rm --privileged multiarch/qemu-user-static:register --reset
+ wget
https://github.com/multiarch/qemu-user-static/releases/download/v2.12.0/x86_64_qemu-${TARGET_ARCH}-static.tar.gz
+ fi
+
+ # Build using the Dockerfile
+ - docker build -f "$DOCKERFILE" -t "$CI_REGISTRY_IMAGE:$NAME" .
+
+ # Prepare to publish
+ - docker tag "$CI_REGISTRY_IMAGE:$NAME" "$CI_REGISTRY_IMAGE:job-"$CI_JOB_ID"_$NAME"
+ - docker images
+ - docker login ${CI_REGISTRY} -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD}
+
+ # Publish (if running on a schedule)
+ - |
+ if [[ "${CI_PIPELINE_SOURCE}" == "schedule" ]]; then
+ docker push "$CI_REGISTRY_IMAGE"
+ fi
+
+fedora.dev:
+ <<: *create_docker_image
+ variables:
+ DOCKER_DRIVER: overlay
+ DOCKERFILE: "build-aux/ci/Dockerfile.fedora.rawhide"
+ NAME: "fedora.dev"
+
+fedora.aarch64:
+ <<: *create_docker_image
+ variables:
+ DOCKER_DRIVER: overlay
+ DOCKERFILE: "build-aux/ci/Dockerfile.arm64v8.fedora.rawhide"
+ NAME: "fedora.aarch64"
+ TARGET_ARCH: "aarch64"
+
+fedora.ppc64le:
+ <<: *create_docker_image
+ variables:
+ DOCKER_DRIVER: overlay
+ DOCKERFILE: "build-aux/ci/Dockerfile.ppc64le.fedora.rawhide"
+ NAME: "fedora.ppc64le"
+ TARGET_ARCH: "ppc64le"
diff --git a/build-aux/ci/Dockerfile.arm64v8.fedora.rawhide b/build-aux/ci/Dockerfile.arm64v8.fedora.rawhide
new file mode 100644
index 00000000..ee00ce56
--- /dev/null
+++ b/build-aux/ci/Dockerfile.arm64v8.fedora.rawhide
@@ -0,0 +1,24 @@
+FROM arm64v8/fedora:rawhide
+MAINTAINER Claudio André (c) 2018 V1.0
+
+LABEL architecture="aarch64"
+LABEL version="1.0"
+LABEL description="Docker image to run CI for GNOME Settings Daemon."
+
+ADD x86_64_qemu-aarch64-static.tar.gz /usr/bin
+
+RUN dnf -y --nogpgcheck upgrade && \
+ dnf -y install \
+ @c-development @development-tools clang \
+ alsa-lib-devel colord-devel cups-devel fontconfig-devel geoclue2-devel geocode-glib-devel
\
+ gettext git glib2-devel gnome-desktop3-devel gnome-session gobject-introspection \
+ gsettings-desktop-schemas-devel gtk3-devel lcms2-devel libcanberra-devel libgtop2-devel \
+ libgudev-devel libgweather-devel libnotify-devel librsvg2-devel libX11-devel libXi-devel \
+ libXtst-devel libwacom-devel meson NetworkManager-libnm-devel nss-devel perl-interpreter \
+ polkit-devel pulseaudio-libs-devel pygobject3 python3-dbusmock upower-devel wayland-devel
\
+ which xorg-x11-drv-wacom-devel xorg-x11-server-Xvfb xorg-x11-utils mutter \
+ mesa-dri-drivers llvm && \
+ dnf -y clean all
+
+CMD ["/bin/bash"]
+
diff --git a/build-aux/ci/Dockerfile.fedora.rawhide b/build-aux/ci/Dockerfile.fedora.rawhide
new file mode 100644
index 00000000..51246882
--- /dev/null
+++ b/build-aux/ci/Dockerfile.fedora.rawhide
@@ -0,0 +1,22 @@
+FROM fedora:rawhide
+MAINTAINER Claudio André (c) 2018 V1.0
+
+LABEL architecture="x86_64"
+LABEL version="1.0"
+LABEL description="Docker image to run CI for GNOME Settings Daemon."
+
+RUN dnf -y --nogpgcheck upgrade && \
+ dnf -y install \
+ @c-development @development-tools clang \
+ alsa-lib-devel colord-devel cups-devel fontconfig-devel geoclue2-devel geocode-glib-devel
\
+ gettext git glib2-devel gnome-desktop3-devel gnome-session gobject-introspection \
+ gsettings-desktop-schemas-devel gtk3-devel lcms2-devel libcanberra-devel libgtop2-devel \
+ libgudev-devel libgweather-devel libnotify-devel librsvg2-devel libX11-devel libXi-devel \
+ libXtst-devel libwacom-devel meson NetworkManager-libnm-devel nss-devel perl-interpreter \
+ polkit-devel pulseaudio-libs-devel pygobject3 python3-dbusmock upower-devel wayland-devel
\
+ which xorg-x11-drv-wacom-devel xorg-x11-server-Xvfb xorg-x11-utils mutter \
+ mesa-dri-drivers llvm && \
+ dnf -y clean all
+
+CMD ["/bin/bash"]
+
diff --git a/build-aux/ci/Dockerfile.ppc64le.fedora.rawhide b/build-aux/ci/Dockerfile.ppc64le.fedora.rawhide
new file mode 100644
index 00000000..ea5cba58
--- /dev/null
+++ b/build-aux/ci/Dockerfile.ppc64le.fedora.rawhide
@@ -0,0 +1,24 @@
+FROM ppc64le/fedora:rawhide
+MAINTAINER Claudio André (c) 2018 V1.0
+
+LABEL architecture="ppc64le"
+LABEL version="1.0"
+LABEL description="Docker image to run CI for GNOME Settings Daemon."
+
+ADD x86_64_qemu-ppc64le-static.tar.gz /usr/bin
+
+RUN dnf -y --nogpgcheck upgrade && \
+ dnf -y install \
+ @c-development @development-tools clang \
+ alsa-lib-devel colord-devel cups-devel fontconfig-devel geoclue2-devel geocode-glib-devel
\
+ gettext git glib2-devel gnome-desktop3-devel gnome-session gobject-introspection \
+ gsettings-desktop-schemas-devel gtk3-devel lcms2-devel libcanberra-devel libgtop2-devel \
+ libgudev-devel libgweather-devel libnotify-devel librsvg2-devel libX11-devel libXi-devel \
+ libXtst-devel libwacom-devel meson NetworkManager-libnm-devel nss-devel perl-interpreter \
+ polkit-devel pulseaudio-libs-devel pygobject3 python3-dbusmock upower-devel wayland-devel
\
+ which xorg-x11-drv-wacom-devel xorg-x11-server-Xvfb xorg-x11-utils mutter \
+ mesa-dri-drivers llvm && \
+ dnf -y clean all
+
+CMD ["/bin/bash"]
+
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]