diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 78626289a2e685e24d06ab01a69e222c93b62327..6374c45f4747ea415b13e1c00ee8eaf39c48715e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,7 +7,9 @@ stages: - staging variables: - CONTAINER_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME + DEV_IMAGE: $CI_REGISTRY_IMAGE/dev-image + DEV_IMAGE_BASE: $CI_REGISTRY_IMAGE/dev-image-base + RELEASE_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG DOCKER_DRIVER: overlay2 # ========================== Build Testing section =========================== # @@ -116,9 +118,34 @@ test_frontend_unit: # =========================== Build Image section ============================ # -build_backend: +build_dev_image: image: docker:latest stage: build_image + only: + - branches + services: + - docker:dind + variables: + DOCKER_HOST: tcp://docker:2375/ + DOCKER_DRIVER: overlay2 + script: + - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY + - docker pull $DEV_IMAGE_BASE || true + - docker build --cache-from $DEV_IMAGE_BASE -t $DEV_IMAGE_BASE --target node . + - docker pull $DEV_IMAGE || true + - docker build --cache-from $DEV_IMAGE --cache-from $DEV_IMAGE_BASE -t $DEV_IMAGE . + - docker push $DEV_IMAGE_BASE + - docker push $DEV_IMAGE + tags: + - docker + +build_release_image: + image: docker:latest + stage: build_image + only: + - tags + except: + - branches services: - docker:dind variables: @@ -126,12 +153,10 @@ build_backend: DOCKER_DRIVER: overlay2 script: - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY - - docker pull "$CONTAINER_IMAGE-base" || true - - docker build --cache-from "$CONTAINER_IMAGE-base" -t "$CONTAINER_IMAGE-base" --target node . - - docker pull $CONTAINER_IMAGE || true - - docker build --cache-from $CONTAINER_IMAGE --cache-from "$CONTAINER_IMAGE-base" -t $CONTAINER_IMAGE . - - docker push "$CONTAINER_IMAGE-base" - - docker push $CONTAINER_IMAGE + - docker pull $DEV_IMAGE_BASE || true + - docker pull $DEV_IMAGE || true + - docker build --cache-from $DEV_IMAGE --cache-from $DEV_IMAGE_BASE -t $RELEASE_IMAGE . + - docker push $RELEASE_IMAGE tags: - docker