summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
diff options
context:
space:
mode:
authorClaudio André <claudioandre.br@gmail.com>2018-07-05 15:08:24 -0300
committerClaudio André <claudioandre.br@gmail.com>2018-07-14 23:49:17 -0300
commit185e53169f88ebaf6343bb8269cca37b45b2f53c (patch)
tree8c8b0892c0734b744c93e1e932675eec992e5d6d /.gitlab-ci.yml
parent4f8a64ac25d3acd1b6707d5905f668b90652065f (diff)
downloadgnome-control-center-185e53169f88ebaf6343bb8269cca37b45b2f53c.tar.gz
CI: build 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 3a5fc53a6..269ce8a87 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -271,3 +271,67 @@ ppc64le:
DOCKER_DRIVER: overlay
IMAGE: "claudioandre/settings:fedora.ppc64le"
when: manual
+
+#############################################
+# 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"