From c6339e027e85e6474fbb9df6d28ec00d321d3457 Mon Sep 17 00:00:00 2001 From: Andrei Gherzan <andrei.gherzan@huawei.com> Date: Mon, 4 Apr 2022 17:24:33 +0200 Subject: [PATCH] ci: Deploy container images to OSTC docker registry The EF infrastructure (GitLab) doesn't support image registry. This moves the CI logic of building and deploying all the container images to the OSTC instance while EF catches up[1]. [1] https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/issues/1108 Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com> --- .gitlab-ci.yml | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6336cf96..484a9f58 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -299,8 +299,20 @@ lava-badge: script: - | set -xe + test -n "$CI_ONIRO_REGISTRY" || ( + echo "CI_ONIRO_REGISTRY not provided. Docker registry deployment can't continue." + && exit 1 ) + test -n "$CI_ONIRO_REGISTRY_IMAGE" || ( + echo "CI_ONIRO_REGISTRY_IMAGE not provided. Docker registry deployment can't continue." + && exit 1 ) + test -n "$CI_ONIRO_REGISTRY_USER" || ( + echo "CI_ONIRO_REGISTRY_USER not provided. Docker registry deployment can't continue." + && exit 1 ) + test -n "$CI_ONIRO_REGISTRY_TOKEN" || ( + echo "CI_ONIRO_REGISTRY_TOKEN not provided. Docker registry deployment can't continue." + && exit 1 ) mkdir -p /kaniko/.docker - printf '{"auths":{"%s":{"auth":"%s"}}}\n' "$CI_REGISTRY" "$(printf '%s:%s' "$CI_REGISTRY_USER" "$CI_REGISTRY_PASSWORD" | base64)" > /kaniko/.docker/config.json + printf '{"auths":{"%s":{"auth":"%s"}}}\n' "$CI_ONIRO_REGISTRY" "$(printf '%s:%s' "$CI_ONIRO_REGISTRY_USER" "$CI_ONIRO_REGISTRY_TOKEN" | base64)" > /kaniko/.docker/config.json BUILD_DATE="$(date '+%FT%T%z' | sed -E -n 's/(\+[0-9]{2})([0-9]{2})$/\1:\2/p')" #rfc 3339 date BUILD_TITLE=$(echo "$CI_PROJECT_TITLE" | tr " " "_") IMAGE_LABELS="$(cat <<EOM @@ -317,7 +329,7 @@ lava-badge: --label org.opencontainers.image.description=$BUILD_TITLE --label org.opencontainers.image.documentation=$CI_PROJECT_URL --label org.opencontainers.image.licenses=$CI_PROJECT_URL - --label org.opencontainers.image.ref.name=$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME + --label org.opencontainers.image.ref.name=$CI_ONIRO_REGISTRY:$CI_COMMIT_REF_NAME --label org.opencontainers.image.revision=$CI_COMMIT_SHA --label org.opencontainers.image.source=$CI_PROJECT_URL --label org.opencontainers.image.title=$BUILD_TITLE @@ -340,8 +352,8 @@ lava-badge: fi FORMATTED_TAG_LIST="$(echo "$FORMATTED_TAG_LIST" | sed -e 's/--tag/--destination/g')" - echo "Building and shipping image to $CI_REGISTRY_IMAGE" - exec /kaniko/executor --context "$CI_PROJECT_DIR/.oniro-ci/containers/$CONTAINER_PATH" --dockerfile "$CI_PROJECT_DIR/.oniro-ci/containers/$CONTAINER_PATH/Dockerfile" --destination $CI_REGISTRY_IMAGE/$CONTAINER_PATH $IMAGE_LABELS + echo "Building and shipping image to $CI_ONIRO_REGISTRY" + exec /kaniko/executor --context "$CI_PROJECT_DIR/.oniro-ci/containers/$CONTAINER_PATH" --dockerfile "$CI_PROJECT_DIR/.oniro-ci/containers/$CONTAINER_PATH/Dockerfile" --destination $CI_ONIRO_REGISTRY_IMAGE/$CONTAINER_PATH $IMAGE_LABELS rules: - if: $CI_PIPELINE_SOURCE == "schedule" when: never -- GitLab