diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index db55489e1..f101eb7fc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -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: diff --git a/Makefile b/Makefile index 8cdf04ce3..a041e569d 100644 --- a/Makefile +++ b/Makefile @@ -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