diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 840e280bd9b215c4339441dc1ab799e04416f941..21bfbf3e1af8bcf7ca4f6878a86ac0e907211680 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -20,20 +20,7 @@ stages: - docker images - docker ps -a script: - - echo "current branch is ${CI_COMMIT_BRANCH}" - - echo "current commit is ${CI_COMMIT_SHA:0:8}" - - echo "current tag is ${CI_COMMIT_TAG}" - - 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 - - if [[ -z $CI_COMMIT_TAG ]]; then echo "ERROR variable CI_COMMIT_TAG is not defined "; exit 1; fi - - echo "start IMAGE is ${IMAGE_NAME}:${IMAGE_TAG}" - - NEW_IMAGE_TAG=`echo ${CI_COMMIT_TAG} | sed -e 's@.*-\(v[0-9\.]*\)@\1@'` - - echo "new IMAGE TAG is ${NEW_IMAGE_TAG}" - - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN gitlab-registry.cern.ch - - docker tag ${IMAGE}:${IMAGE_TAG} ${IMAGE}:${NEW_IMAGE_TAG} - - docker tag ${IMAGE}:${IMAGE_TAG} ${IMAGE}:latest - - docker push ${IMAGE}:${NEW_IMAGE_TAG} - - docker push ${IMAGE}:latest + - ${CI_PROJECT_DIR}/ci_promote_image.sh only: variables: - $CI_COMMIT_TAG =~ /^.*-v[0-9].*$/ @@ -109,7 +96,7 @@ promote_patatrack: variables: - $CI_COMMIT_TAG =~ /^cms-patatrack-v.*$/ before_script: - - export IMAGE_NAME=$CI_REGISTRY_IMAGE/cms/cms-patatrack-nvidia-bmk + - export IMAGE_NAMES=$CI_REGISTRY_IMAGE/cms/cms-patatrack-nvidia-bmk - export IMAGE_TAG:ci-qa-${CI_COMMIT_SHA:0:8} ##################################################### @@ -124,7 +111,6 @@ build_simpletrack: only: variables: - $CI_COMMIT_BRANCH =~ /^qa.*$/ - #- $CI_COMMIT_TAG =~ /^simpletrack-v.*$/ changes: - lhc/simpletrack/Dockerfile.* - lhc/simpletrack/lhc-simpletrack.* @@ -137,5 +123,5 @@ promote_simpletrack: variables: - $CI_COMMIT_TAG =~ /^simpletrack-v.*$/ before_script: - - export IMAGE_NAME=$CI_REGISTRY_IMAGE/simpletrack/intel - - export IMAGE_TAG:ci-qa-latest + - export IMAGE_NAMES="$CI_REGISTRY_IMAGE/simpletrack/intel|$CI_REGISTRY_IMAGE/simpletrack/nvidia|$CI_REGISTRY_IMAGE/simpletrack/pocl|$CI_REGISTRY_IMAGE/simpletrack/rocm" + - export IMAGE_TAG=ci-qa-latest diff --git a/ci_promote_image.sh b/ci_promote_image.sh new file mode 100755 index 0000000000000000000000000000000000000000..45c2dd86750eb0a6040fe42fa76d8cba5b11c224 --- /dev/null +++ b/ci_promote_image.sh @@ -0,0 +1,22 @@ +#!/bin/bash + + echo "current CI_COMMIT_BRANCH is ${CI_COMMIT_BRANCH}" + echo "current CI_COMMIT_REF_NAME is $CI_COMMIT_REF_NAME" + echo "current CI_COMMIT_SHA is ${CI_COMMIT_SHA:0:8}" + echo "current CI_COMMIT_TAG is ${CI_COMMIT_TAG}" + if [[ -z $IMAGE_NAMES ]]; then echo "ERROR variable IMAGE_NAMES is not defined "; exit 1; fi + if [[ -z $IMAGE_TAG ]]; then echo "ERROR variable IMAGE_TAG is not defined "; exit 1; fi + if [[ -z $CI_COMMIT_TAG ]]; then echo "ERROR variable CI_COMMIT_TAG is not defined "; exit 1; fi + NEW_IMAGE_TAG=`echo ${CI_COMMIT_TAG} | sed -e 's@.*-\(v[0-9\.]*\)@\1@'` + echo "new IMAGE TAG is ${NEW_IMAGE_TAG}" + docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN gitlab-registry.cern.ch + for IMAGE_NAME in `echo $IMAGE_NAMES | tr '|' '\n'`; + do + echo "IMAGE to tag is ${IMAGE_NAME}:${IMAGE_TAG}" + docker pull ${IMAGE_NAME}:${IMAGE_TAG} + docker tag ${IMAGE_NAME}:${IMAGE_TAG} ${IMAGE_NAME}:${NEW_IMAGE_TAG} + docker tag ${IMAGE_NAME}:${IMAGE_TAG} ${IMAGE_NAME}:latest + docker push ${IMAGE_NAME}:${NEW_IMAGE_TAG} + docker push ${IMAGE_NAME}:latest + docker rmi ${IMAGE_NAME}:${IMAGE_TAG} ${IMAGE_NAME}:${NEW_IMAGE_TAG} ${IMAGE_NAME}:latest +done \ No newline at end of file diff --git a/lhc/simpletrack/.simpletrack-ci.yml b/lhc/simpletrack/.simpletrack-ci.yml index 7acd6d3547430127b7cf8f21e56eb9710e1b8127..6582c03cf53f314c5840b8bc0321c8b0cbf8ead7 100644 --- a/lhc/simpletrack/.simpletrack-ci.yml +++ b/lhc/simpletrack/.simpletrack-ci.yml @@ -14,9 +14,16 @@ stages: entrypoint: [""] environment: name: build/$CI_COMMIT_REF_NAME - before_script: + script: - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json - - export HEP_LATEST="latest"; export HEP_TAG=`echo ${CI_COMMIT_TAG} | sed -e 's@.*-\(v[0-9\.]*\)@\1@'`; if [ "$CI_COMMIT_REF_NAME" == "qa" ]; then export HEP_LATEST=`echo ci-${CI_COMMIT_REF_NAME}-latest` ; export HEP_TAG=`echo "ci"-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHORT_SHA}`; fi + - export LATEST="latest"; + - export IMAGE_TAG=`echo ${CI_COMMIT_TAG} | sed -e 's@.*-\(v[0-9\.]*\)@\1@'`; + - if [ "$CI_COMMIT_REF_NAME" == "qa" ]; then export LATEST=`echo ci-${CI_COMMIT_REF_NAME}-latest` ; export IMAGE_TAG=`echo "ci"-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHORT_SHA}`; fi + - 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 + - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile ${DOCKERFILE} --destination ${IMAGE_NAME}:$IMAGE_TAG --destination ${IMAGE_NAME}:$LATEST .job_template: &job_test stage: test @@ -48,23 +55,27 @@ stages: build:nvidia: <<: *job_build - script: - - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/lhc/simpletrack/Dockerfile.nvidia --destination ${CI_REGISTRY_IMAGE}/simpletrack/nvidia:$HEP_TAG --destination ${CI_REGISTRY_IMAGE}/simpletrack/nvidia:$HEP_LATEST + before_script: + - export DOCKERFILE=$CI_PROJECT_DIR/lhc/simpletrack/Dockerfile.nvidia + - export IMAGE_NAME=${CI_REGISTRY_IMAGE}/simpletrack/nvidia build:intel: <<: *job_build - script: - - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/lhc/simpletrack/Dockerfile.intel --destination ${CI_REGISTRY_IMAGE}/simpletrack/intel:$HEP_TAG --destination ${CI_REGISTRY_IMAGE}/simpletrack/intel:$HEP_LATEST + before_script: + - export DOCKERFILE=$CI_PROJECT_DIR/lhc/simpletrack/Dockerfile.intel + - export IMAGE_NAME=${CI_REGISTRY_IMAGE}/simpletrack/intel build:rocm: <<: *job_build - script: - - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/lhc/simpletrack/Dockerfile.rocm --destination $CI_REGISTRY_IMAGE/simpletrack/rocm:$HEP_TAG --destination $CI_REGISTRY_IMAGE/simpletrack/rocm:$HEP_LATEST + before_script: + - export DOCKERFILE=$CI_PROJECT_DIR/lhc/simpletrack/Dockerfile.rocm + - export IMAGE_NAME=${CI_REGISTRY_IMAGE}/simpletrack/rocm build:pocl: <<: *job_build - script: - - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/lhc/simpletrack/Dockerfile.pocl --destination ${CI_REGISTRY_IMAGE}/simpletrack/pocl:$HEP_TAG --destination ${CI_REGISTRY_IMAGE}/simpletrack/pocl:$HEP_LATEST + before_script: + - export DOCKERFILE=$CI_PROJECT_DIR/lhc/simpletrack/Dockerfile.pocl + - export IMAGE_NAME=${CI_REGISTRY_IMAGE}/simpletrack/pocl ########################## ### Test #################