gitlab-ci: Re-use docker image from the main repo in forked repos
authorMichel Dänzer <michel.daenzer@amd.com>
Fri, 8 Feb 2019 09:14:58 +0000 (10:14 +0100)
committerMichel Dänzer <michel@daenzer.net>
Mon, 11 Feb 2019 11:24:31 +0000 (12:24 +0100)
Instead of generating it from scratch in each forked repo. This should
save time, energy and storage. (The xserver & xf86-video-amdgpu CI
scripts do basically the same)

v2:
* Hardcode "mesa" instead of using $CI_PROJECT_NAME, to avoid breakage
  if the project name is changed after forking (Eric Engestrom)

Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
.gitlab-ci.yml

index 0a097ce3830ddf3c031223cfc0aaa8412786fbc0..f0e16cf1c28ace1873d59b8b428e2217fb59a79a 100644 (file)
@@ -18,6 +18,7 @@
 variables:
   UBUNTU_TAG: 2019-01-31-01
   UBUNTU_IMAGE: "$CI_REGISTRY_IMAGE/ubuntu:$UBUNTU_TAG"
+  UBUNTU_IMAGE_MAIN: "registry.freedesktop.org/mesa/mesa/ubuntu:$UBUNTU_TAG"
 
 
 stages:
@@ -42,6 +43,10 @@ containers:ubuntu:
     - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
     # Check if the image (with the specific tag) already exists
     - docker manifest inspect $UBUNTU_IMAGE && exit || true
+    # Try to re-use the image from the main repository's registry
+    - docker image pull $UBUNTU_IMAGE_MAIN &&
+      docker image tag $UBUNTU_IMAGE_MAIN $UBUNTU_IMAGE &&
+      docker image push $UBUNTU_IMAGE && exit || true
     - docker build -t $UBUNTU_IMAGE -f .gitlab-ci/Dockerfile.ubuntu .
     - docker push $UBUNTU_IMAGE
   only: