From 8b6d7979dfbf376d8e81cee6a08944b67e43a2c1 Mon Sep 17 00:00:00 2001
From: Timm Fitschen <t.fitschen@indiscale.com>
Date: Fri, 8 Jul 2022 20:39:33 +0200
Subject: [PATCH] PIPELINE

---
 .gitlab-ci.yml | 63 +++++++++++++++++++++++++-------------------------
 1 file changed, 31 insertions(+), 32 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 67840eb..2dc870d 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -48,27 +48,28 @@ stages:
   - build
   - test
 
+.env: &env
+  - echo "Pipeline triggered by $TRIGGERED_BY_REPO@$TRIGGERED_BY_REF ($TRIGGERED_BY_HASH)"
+  - echo "CPPLIB_REGISTRY_IMAGE = $CPPLIB_REGISTRY_IMAGE"
+  - echo "CI_REGISTRY_IMAGE_BASE = $CI_REGISTRY_IMAGE_BASE"
+  - echo "CPPINTTEST_REGISTRY_IMAGE = $CPPINTTEST_REGISTRY_IMAGE"
+  - echo "CPPINTTEST_IMAGE_CACHE = $CPPINTTEST_IMAGE_CACHE"
+  - echo "CAOSDB_TAG = $CAOSDB_TAG"
+  - echo "F_BRANCH = $F_BRANCH"
+
 info:
   tags: [cached-dind]
   image: docker:20.10
   stage: info
   needs: []
   script:
-    - echo "Pipeline triggered by $TRIGGERED_BY_REPO@$TRIGGERED_BY_REF ($TRIGGERED_BY_HASH)"
-    - echo "CPPLIB_REGISTRY_IMAGE = $CPPLIB_REGISTRY_IMAGE"
-    - echo "CI_REGISTRY_IMAGE_BASE = $CI_REGISTRY_IMAGE_BASE"
-    - echo "CPPINTTEST_REGISTRY_IMAGE = $CPPINTTEST_REGISTRY_IMAGE"
-    - echo "CPPINTTEST_IMAGE_CACHE = $CPPINTTEST_IMAGE_CACHE"
-    - echo "CAOSDB_TAG = $CAOSDB_TAG"
-    - echo "REFTAG = $REFTAG"
-    - echo "F_BRANCH = $F_BRANCH"
-    - ls -lah /image-cache/
+    - *env
 
 
 # Build a docker image in which tests for this repository can run
 build-testenv: &build-testenv
   tags: [cached-dind]
-  image: docker:20.10.6
+  image: docker:20.10
   stage: setup
   timeout: 2h
   needs: []
@@ -77,10 +78,11 @@ build-testenv: &build-testenv
     - schedules
     - web
   script:
+    - *env
     - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
 
       #build testenv image
-    - docker pull $CPPLIB_REGISTRY_IMAGE || true # remove??? docker build --pull???
+    - docker pull $CPPLIB_REGISTRY_IMAGE || { CPPLIB_REGISTRY_IMAGE="$CI_REGISTRY/caosdb/src/caosdb-cpplib/testenv:dev" ; docker pull $CPPLIB_REGISTRY_IMAGE ; }
     - docker build
       --build-arg CPPLIB_REGISTRY_IMAGE=$CPPLIB_REGISTRY_IMAGE
       --file .docker/Dockerfile
@@ -108,7 +110,7 @@ build-test:
 test:
   tags: [docker]
   services:
-    - docker:20.10.3-dind
+    - docker:20.10-dind
   variables:
     # This is a workaround for the gitlab-runner health check mechanism when
     # using docker-dind service.  The runner will otherwise guess the port
@@ -121,15 +123,13 @@ test:
       artifacts: true
     - job: build-test
   script:
-    - echo $PWD
-    - F_BRANCH="${F_BRANCH:-$CI_COMMIT_REF_NAME}" ;
-    - echo "F_BRANCH = $F_BRANCH"
-    - echo "CAOSDB_TAG = $CAOSDB_TAG"
-    - echo "DEPLOY_REF = $DEPLOY_REF"
-    - ls -la
-
+    - *env
     - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
+    - time docker load < /image-cache/caosdb-${CAOSDB_TAG}.tar || time docker load < /image-cache/caosdb-dev.tar || true
+    - docker pull $CI_REGISTRY/caosdb/src/caosdb-deploy:$CAOSDB_TAG || CAOSDB_TAG=dev
 
+    - F_BRANCH=${F_BRANCH:-$CI_COMMIT_REF_NAME}
+    - echo "F_BRANCH = $F_BRANCH"
     - if [ -z "$CAOSDB_TAG" ]; then
         if echo "$F_BRANCH" | grep -c "^f-" ; then
           CAOSDB_TAG=${DEPLOY_REF}_F_${F_BRANCH};
@@ -142,28 +142,28 @@ test:
           CAOSDB_TAG="${DEFAULT_CAOSDB_TAG}" ;
         fi;
       fi
-    - echo "F_BRANCH = $F_BRANCH"
-    - echo "CAOSDB_TAG = $CAOSDB_TAG"
-    - echo "DEPLOY_REF = $DEPLOY_REF"
-    - docker load < /image-cache/caosdb-${F_BRANCH}.tar || true
-    - docker pull $CI_REGISTRY/caosdb/src/caosdb-deploy:$CAOSDB_TAG || CAOSDB_TAG="${DEFAULT_CAOSDB_TAG}" ;
     - echo "CAOSDB_TAG = $CAOSDB_TAG"
 
     - docker load < /image-cache/${CPPINTTEST_IMAGE_CACHE} || true
     - docker pull $CPPINTTEST_REGISTRY_IMAGE
-
     - docker load < /image-cache/mariadb.tar || true
-      # load any(!!!) mariab image
+
     - cd .docker
-    - ls -la
-    - ls -la cert
 
       # here the server and the mysql backend docker are being started
     - CAOSDB_TAG=$CAOSDB_TAG docker-compose  up -d
+
       # store versions of CaosDB parts
-    - docker exec -u 0 -t docker_caosdb-server_1 cat /opt/caosdb/git/caosdb_server_commit | tee hash_server
-    - docker exec -u 0 -t docker_caosdb-server_1 cat /opt/caosdb/git/caosdb_mysqlbackend_commit | tee hash_mysql
-    - docker exec -u 0 -t docker_caosdb-server_1 cat /opt/caosdb/git/caosdb_proto_commit | tee hash_proto
+    - docker exec -u 0 -t docker_caosdb-server_1 cat /opt/caosdb/git/caosdb_pylib_commit > hash_pylib
+    - docker exec -u 0 -t docker_caosdb-server_1 cat /opt/caosdb/git/caosdb_webui_commit > hash_webui
+    - docker exec -u 0 -t docker_caosdb-server_1 cat /opt/caosdb/git/caosdb_server_commit > hash_server
+    - docker exec -u 0 -t docker_caosdb-server_1 cat /opt/caosdb/git/caosdb_mysqlbackend_commit > hash_mysql
+    - docker exec -u 0 -t docker_caosdb-server_1 cat /opt/caosdb/git/caosdb_proto_commit > hash_proto
+    - cat hash_server
+    - cat hash_proto
+    - cat hash_mysql
+    - cat hash_webui
+    - cat hash_pylib
 
       # the pyinttest docker writes the return value of the tests into the
       # file result
@@ -179,7 +179,6 @@ test:
       # collect results
     - rc=`cat result`
 
-      # renew mariadb image in the cache (why? to renew the timestamp???)
     - echo mariadb:$(docker image ls mariadb | grep mariadb | awk '{print $2}')
     - docker save mariadb:$(docker image ls mariadb | grep mariadb | awk '{print $2}') > /image-cache/mariadb.tar || true
 
-- 
GitLab