diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4fe1f09eb..3a42fa5b7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -79,13 +79,14 @@ setup:containers:frontend: needs: - setup:dynamic image: ${IMAGE_BUILDER} - script: + before_script: &container-before - FRONTEND_IMAGE_VERSION=`cat frontend-image-version` - IMAGE_TAG=frontend/${CI_COMMIT_REF_SLUG}:${FRONTEND_IMAGE_VERSION} - REGISTRY_DESTINATION=${CI_REGISTRY_IMAGE}/frontend/${CI_COMMIT_REF_SLUG}:${FRONTEND_IMAGE_VERSION} + script: - curl --request GET --header "PRIVATE-TOKEN:${REGISTRY_AUTH_TOKEN}" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/registry/repositories?tags=true" > .gitlab-ci/.container-registry-contents.json - - cat .gitlab-ci/.container-registry-contents.json - IMAGE_EXISTS=`grep \""${REGISTRY_DESTINATION}"\" .gitlab-ci/.container-registry-contents.json` + - cat .gitlab-ci/.container-registry-contents.json - echo ${IMAGE_EXISTS} - echo ${CI_JOB_MANUAL} - test ${CI_JOB_MANUAL} == true && echo "Force rebuilding container." @@ -98,7 +99,24 @@ setup:containers:frontend: echo "Image ${IMAGE_TAG} already exists in the container registry. Skipping build." fi rules: + - if: $CI_MERGE_REQUEST_ID + when: never - when: always +setup:containers:frontend:wait: + stage: setup + needs: + - setup:dynamic + before_script: *container-before + script: + - > + while ! curl --request GET --header "PRIVATE-TOKEN:${REGISTRY_AUTH_TOKEN}" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/registry/repositories?tags=true" | grep \""${REGISTRY_DESTINATION}"\" ; do + echo "Waiting for container ${IMAGE_TAG} to appear in the container registry..." + sleep 5 + done + rules: + - if: $CI_MERGE_REQUEST_ID + when: always + - when: never # TODO: switch to exec logic as above (see frontend container) setup:containers:backend: &containers-backend