ci(gitlab-ci): replace manual frontend container build
check if image already exists in the registry and build if not; also rebuild on manual run
This commit is contained in:
parent
d4d18a968c
commit
fc57bdffb5
@ -77,28 +77,32 @@ setup:dynamic:
|
||||
rules:
|
||||
- when: always
|
||||
|
||||
setup:containers:frontend: &containers-frontend
|
||||
setup:containers:frontend:
|
||||
stage: setup
|
||||
needs:
|
||||
- setup:dynamic
|
||||
image: ${IMAGE_BUILDER}
|
||||
script:
|
||||
- FRONTEND_IMAGE_VERSION=`cat frontend-image-version`
|
||||
- buildah bud -t frontend/${CI_COMMIT_REF_SLUG}:${FRONTEND_IMAGE_VERSION} --build-arg PROJECT_DIR=${CI_PROJECT_DIR} --volume ${CI_PROJECT_DIR}:/tmp/${CI_PROJECT_DIR} --file docker/frontend/Dockerfile
|
||||
- buildah push --creds "${CI_REGISTRY_USER}:${CI_JOB_TOKEN}" frontend/${CI_COMMIT_REF_SLUG}:${FRONTEND_IMAGE_VERSION} ${CI_REGISTRY_IMAGE}/frontend/${CI_COMMIT_REF_SLUG}:${FRONTEND_IMAGE_VERSION}
|
||||
rules:
|
||||
- changes:
|
||||
paths:
|
||||
- docker/frontend/Dockerfile
|
||||
- package.json
|
||||
- package-lock.json
|
||||
- webpack.config.js
|
||||
interruptible: false
|
||||
setup:containers:frontend:manual:
|
||||
<<: *containers-frontend
|
||||
- IMAGE_TAG=frontend/${CI_COMMIT_REF_SLUG}:${FRONTEND_IMAGE_VERSION}
|
||||
- REGISTRY_DESTINATION=${CI_REGISTRY_IMAGE}/frontend/${CI_COMMIT_REF_SLUG}:${FRONTEND_IMAGE_VERSION}
|
||||
- IMAGE_EXISTS=`curl "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/registry/repositories?tags=true" | grep \""${REGISTRY_DESTINATION}"\"`
|
||||
- ${FORCE_REBUILD_IMAGE} && echo "Force rebuilding container."
|
||||
- >
|
||||
if [ ${IMAGE_EXISTS} -a ! ${FORCE_REBUILD_IMAGE} ]; then
|
||||
echo "Image ${IMAGE_TAG} already exists in the container registry. Skipping build."
|
||||
else
|
||||
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 push --creds "${CI_REGISTRY_USER}:${CI_JOB_TOKEN}" ${IMAGE_TAG} ${REGISTRY_DESTINATION}
|
||||
rules:
|
||||
- when: always
|
||||
variables:
|
||||
FORCE_REBUILD_IMAGE: false
|
||||
- when: manual
|
||||
allow_failure: true
|
||||
variables:
|
||||
FORCE_REBUILD_IMAGE: true
|
||||
interruptible: false
|
||||
|
||||
setup:containers:backend: &containers-backend
|
||||
stage: setup
|
||||
|
||||
Reference in New Issue
Block a user