ci(gitlab-ci): add wait job for frontend container in merge request pipelines

This commit is contained in:
Sarah Vaupel 2024-09-05 00:29:35 +02:00
parent 5551f869e3
commit 0488edf7ae

View File

@ -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