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