summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
diff options
context:
space:
mode:
authorClaudio André <claudioandre.br@gmail.com>2018-07-12 17:58:22 -0300
committerBenjamin Berg <bberg@redhat.com>2019-02-04 15:19:31 +0100
commit92751c580dfe345389563a71bce8f4bd0179880c (patch)
tree81127e571cecc7380a0bad7993230aab455bb91d /.gitlab-ci.yml
parent3c66e4f647899548411a80432b30daed45a28183 (diff)
downloadgnome-settings-daemon-92751c580dfe345389563a71bce8f4bd0179880c.tar.gz
CI: create and save Docker images in GNOME GitLab
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r--.gitlab-ci.yml64
1 files changed, 64 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index bf543db4..86161ae9 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]'*}" ]]; 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"