From 7428e0f5e17b0298a377eb2aafec74f4c7b23882 Mon Sep 17 00:00:00 2001
From: Domenico Giordano <domenico.giordano@cern.ch>
Date: Sun, 5 Jul 2020 15:12:16 +0200
Subject: [PATCH] try to speedup build. Kaniko very long

---
 cms/cms-patatrack-ci.yml                     | 24 ++++++++++++++++++--
 cms/patatrack/ci-scripts/nvidia.Dockerfile.0 |  1 +
 2 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/cms/cms-patatrack-ci.yml b/cms/cms-patatrack-ci.yml
index dacaa5e..984c33d 100644
--- a/cms/cms-patatrack-ci.yml
+++ b/cms/cms-patatrack-ci.yml
@@ -12,7 +12,7 @@ stages:
 ##########################
 ## Templates #############
 
-.definition_build_image: &template_build_image
+.definition_build_image_kaniko: &template_build_image_kaniko
     tags:
         - hep-workload-gpu-docker-builder
     image: # NB enable shared runners and do not specify a CI tag
@@ -28,7 +28,6 @@ stages:
         - if [[ -z $IMAGE_TAG ]]; then echo "ERROR variable IMAGE_TAG is not defined "; exit 1; fi 
         - export DESTINATIONS="--destination $CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG --destination $CI_REGISTRY_IMAGE/$IMAGE_NAME:ci-${CI_COMMIT_BRANCH}-${CI_COMMIT_SHA:0:8}"
         - echo "DESTINATIONS $DESTINATIONS"
-        - docker rmi -f $CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG || echo "image $CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG does not exist"
         # Prepare Kaniko configuration file
         - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
         # Build and push the image from the Dockerfile at the root of the project.
@@ -36,6 +35,27 @@ stages:
         # See https://docs.gitlab.com/ee/ci/variables/predefined_variables.html#variables-reference for available variables
         - /kaniko/executor --context $CONTEXT --dockerfile $DOCKERFILE $DESTINATIONS
 
+.definition_build_image_kaniko: &template_build_image_kaniko
+    tags:
+        - hep-workload-gpu-docker-builder
+    image: 
+        name: gitlab-registry.cern.ch/hep-benchmarks/hep-workloads-builder/dind:qa # Use instead of kaniko
+        entrypoint: ["/bin/bash"]
+    script:
+        - echo "current commit is ${CI_COMMIT_SHA:0:8}"
+        - echo "current branch is ${CI_COMMIT_BRANCH}"
+        - echo "current tag is ${CI_COMMIT_TAG}"
+        - if [[ -z $DOCKERFILE ]]; then echo "ERROR variable DOCKERFILE is not defined "; exit 1; fi 
+        - if [[ -z $CONTEXT ]]; then echo "ERROR variable CONTEXT is not defined "; exit 1; fi 
+        - if [[ -z $IMAGE_NAME ]]; then echo "ERROR variable IMAGE_NAME is not defined "; exit 1; fi 
+        - if [[ -z $IMAGE_TAG ]]; then echo "ERROR variable IMAGE_TAG is not defined "; exit 1; fi 
+        - docker rmi -f $CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG || echo "image $CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG does not exist"
+        - echo $CI_BUILD_TOKEN | docker login -u gitlab-ci-token --password-stdin gitlab-registry.cern.ch
+        - docker build --no-cache -t $CI_REGISTRY_IMAGE/$IMAGE_NAME:ci-${CI_COMMIT_BRANCH}-${CI_COMMIT_SHA:0:8} -f $DOCKERFILE $CONTEXT
+        - dockert tag $CI_REGISTRY_IMAGE/$IMAGE_NAME:ci-${CI_COMMIT_BRANCH}-${CI_COMMIT_SHA:0:8} $CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG
+        - docker push $CI_REGISTRY_IMAGE/$IMAGE_NAME:ci-${CI_COMMIT_BRANCH}-${CI_COMMIT_SHA:0:8}
+        - docker push $CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG
+        - docker rmi $CI_REGISTRY_IMAGE/$IMAGE_NAME:ci-${CI_COMMIT_BRANCH}-${CI_COMMIT_SHA:0:8}
 
 ###########################################################
 # docker in docker image: to trigger other docker runs
diff --git a/cms/patatrack/ci-scripts/nvidia.Dockerfile.0 b/cms/patatrack/ci-scripts/nvidia.Dockerfile.0
index cd42d72..6d66195 100644
--- a/cms/patatrack/ci-scripts/nvidia.Dockerfile.0
+++ b/cms/patatrack/ci-scripts/nvidia.Dockerfile.0
@@ -1,3 +1,4 @@
+# FIXME: need to build in gitlab this base image. Was done by hand
 FROM nvidia/cuda:10.1-devel-centos7 
 
 RUN yum install -y \
-- 
GitLab