ci(gitlab-ci): use new registry-waiting procedure for backend container

This commit is contained in:
Sarah Vaupel 2024-09-05 12:36:06 +02:00
parent 35faf1422c
commit 426ea5b170
2 changed files with 18 additions and 31 deletions

View File

@ -74,15 +74,17 @@ setup:dynamic:
rules:
- when: always
setup:containers:frontend:
setup:containers:frontend: &setup-container
stage: setup
needs:
- setup:dynamic
image: ${IMAGE_BUILDER}
variables:
IMAGE_TYPE: frontend
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}
- IMAGE_VERSION=`cat ${IMAGE_TYPE}-image-version`
- IMAGE_TAG=${IMAGE_TYPE}/${CI_COMMIT_REF_SLUG}:${IMAGE_VERSION}
- REGISTRY_DESTINATION=${CI_REGISTRY_IMAGE}/${IMAGE_TYPE}/${CI_COMMIT_REF_SLUG}:${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
- IMAGE_EXISTS=`grep \""${REGISTRY_DESTINATION}"\" .gitlab-ci/.container-registry-contents.json`
@ -91,7 +93,7 @@ setup:containers:frontend:
- >
if [ -z "${IMAGE_EXISTS}" -o "${CI_JOB_MANUAL}" = true ] ; then
echo "Building image..."
buildah bud -t ${IMAGE_TAG} --build-arg PROJECT_DIR=${CI_PROJECT_DIR} --volume ${CI_PROJECT_DIR}:/tmp/${CI_PROJECT_DIR} --file docker/frontend/Dockerfile
buildah bud -t ${IMAGE_TAG} --build-arg PROJECT_DIR=${CI_PROJECT_DIR} --volume ${CI_PROJECT_DIR}:/tmp/${CI_PROJECT_DIR} --file docker/${IMAGE_TYPE}/Dockerfile
buildah push --creds "${CI_REGISTRY_USER}:${CI_JOB_TOKEN}" ${IMAGE_TAG} ${REGISTRY_DESTINATION}
else
echo "Image ${IMAGE_TAG} already exists in the container registry. Skipping build."
@ -100,13 +102,13 @@ setup:containers:frontend:
- if: $CI_MERGE_REQUEST_ID
when: never
- when: always
setup:containers:frontend:wait:
setup:containers:frontend:wait: &setup-container-wait
stage: setup
needs:
- setup:dynamic
before_script: *container-before
script:
- apt-get -y install curl
- apt-get -y update && apt-get -y install curl
- >
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..."
@ -117,29 +119,14 @@ setup:containers:frontend:wait:
when: always
- when: never
# TODO: switch to exec logic as above (see frontend container)
setup:containers:backend: &containers-backend
stage: setup
needs:
- setup:dynamic
image: ${IMAGE_BUILDER}
script:
- BACKEND_IMAGE_VERSION=`cat backend-image-version`
- buildah bud -t backend/${CI_COMMIT_REF_SLUG}:${BACKEND_IMAGE_VERSION} --build-arg PROJECT_DIR=${CI_PROJECT_DIR} --volume ${CI_PROJECT_DIR}:/tmp/${CI_PROJECT_DIR} --file docker/backend/Dockerfile
- buildah push --creds "${CI_REGISTRY_USER}:${CI_JOB_TOKEN}" backend/${CI_COMMIT_REF_SLUG}:${BACKEND_IMAGE_VERSION} ${CI_REGISTRY_IMAGE}/backend/${CI_COMMIT_REF_SLUG}:${BACKEND_IMAGE_VERSION}
rules:
- changes:
paths:
- docker/backend/Dockerfile
- package.yaml
- stack.yaml
- stack.yaml.lock
interruptible: false
setup:containers:backend:manual:
<<: *containers-backend
rules:
- when: manual
allow_failure: true
setup:containers:backend:
<<: *setup-container
variables:
IMAGE_TYPE: backend
setup:containers:backend:wait:
<<: *setup-container-wait
variables:
IMAGE_TYPE: backend
frontend:

View File

@ -122,7 +122,7 @@ frontend-%: node_modules well-known --frontend-%;
.PHONY: --frontend-test
--frontend-test: karma.conf.cjs
@echo Karma frontend tests are currently work in progress and have been temporarily disabled.
@echo Karma frontend tests are currently broken after npm update and have therefor been temporarily disabled.
# npx -- karma start --conf karma.conf.cjs $(WATCH)
.PHONY: --frontend-test-watch