ci(gitlab-ci): use new registry-waiting procedure for backend container
This commit is contained in:
parent
35faf1422c
commit
426ea5b170
@ -74,15 +74,17 @@ setup:dynamic:
|
|||||||
rules:
|
rules:
|
||||||
- when: always
|
- when: always
|
||||||
|
|
||||||
setup:containers:frontend:
|
setup:containers:frontend: &setup-container
|
||||||
stage: setup
|
stage: setup
|
||||||
needs:
|
needs:
|
||||||
- setup:dynamic
|
- setup:dynamic
|
||||||
image: ${IMAGE_BUILDER}
|
image: ${IMAGE_BUILDER}
|
||||||
|
variables:
|
||||||
|
IMAGE_TYPE: frontend
|
||||||
before_script: &container-before
|
before_script: &container-before
|
||||||
- FRONTEND_IMAGE_VERSION=`cat frontend-image-version`
|
- IMAGE_VERSION=`cat ${IMAGE_TYPE}-image-version`
|
||||||
- IMAGE_TAG=frontend/${CI_COMMIT_REF_SLUG}:${FRONTEND_IMAGE_VERSION}
|
- IMAGE_TAG=${IMAGE_TYPE}/${CI_COMMIT_REF_SLUG}:${IMAGE_VERSION}
|
||||||
- REGISTRY_DESTINATION=${CI_REGISTRY_IMAGE}/frontend/${CI_COMMIT_REF_SLUG}:${FRONTEND_IMAGE_VERSION}
|
- REGISTRY_DESTINATION=${CI_REGISTRY_IMAGE}/${IMAGE_TYPE}/${CI_COMMIT_REF_SLUG}:${IMAGE_VERSION}
|
||||||
script:
|
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
|
- 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`
|
- 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
|
if [ -z "${IMAGE_EXISTS}" -o "${CI_JOB_MANUAL}" = true ] ; then
|
||||||
echo "Building image..."
|
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}
|
buildah push --creds "${CI_REGISTRY_USER}:${CI_JOB_TOKEN}" ${IMAGE_TAG} ${REGISTRY_DESTINATION}
|
||||||
else
|
else
|
||||||
echo "Image ${IMAGE_TAG} already exists in the container registry. Skipping build."
|
echo "Image ${IMAGE_TAG} already exists in the container registry. Skipping build."
|
||||||
@ -100,13 +102,13 @@ setup:containers:frontend:
|
|||||||
- if: $CI_MERGE_REQUEST_ID
|
- if: $CI_MERGE_REQUEST_ID
|
||||||
when: never
|
when: never
|
||||||
- when: always
|
- when: always
|
||||||
setup:containers:frontend:wait:
|
setup:containers:frontend:wait: &setup-container-wait
|
||||||
stage: setup
|
stage: setup
|
||||||
needs:
|
needs:
|
||||||
- setup:dynamic
|
- setup:dynamic
|
||||||
before_script: *container-before
|
before_script: *container-before
|
||||||
script:
|
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
|
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..."
|
echo "Waiting for container ${IMAGE_TAG} to appear in the container registry..."
|
||||||
@ -117,29 +119,14 @@ setup:containers:frontend:wait:
|
|||||||
when: always
|
when: always
|
||||||
- when: never
|
- when: never
|
||||||
|
|
||||||
# TODO: switch to exec logic as above (see frontend container)
|
setup:containers:backend:
|
||||||
setup:containers:backend: &containers-backend
|
<<: *setup-container
|
||||||
stage: setup
|
variables:
|
||||||
needs:
|
IMAGE_TYPE: backend
|
||||||
- setup:dynamic
|
setup:containers:backend:wait:
|
||||||
image: ${IMAGE_BUILDER}
|
<<: *setup-container-wait
|
||||||
script:
|
variables:
|
||||||
- BACKEND_IMAGE_VERSION=`cat backend-image-version`
|
IMAGE_TYPE: backend
|
||||||
- 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
|
|
||||||
|
|
||||||
|
|
||||||
frontend:
|
frontend:
|
||||||
|
|||||||
2
Makefile
2
Makefile
@ -122,7 +122,7 @@ frontend-%: node_modules well-known --frontend-%;
|
|||||||
|
|
||||||
.PHONY: --frontend-test
|
.PHONY: --frontend-test
|
||||||
--frontend-test: karma.conf.cjs
|
--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)
|
# npx -- karma start --conf karma.conf.cjs $(WATCH)
|
||||||
|
|
||||||
.PHONY: --frontend-test-watch
|
.PHONY: --frontend-test-watch
|
||||||
|
|||||||
Reference in New Issue
Block a user