image: docker:latest services: - docker:dind stages: - Base - Variants variables: DOCKER_HOST: tcp://docker:2375/ DOCKER_DRIVER: overlay2 build-base: stage: Base artifacts: expire_in: 1 week paths: - ./images/ except: - pushes only: - master tags: - docker before_script: - docker info - echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin - mkdir ./images script: /ci/build-base.sh build-git: stage: Variants dependencies: - build-base except: - pushes only: - master tags: - docker before_script: - echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin - docker load --input "./images/$CI_COMMIT_SHORT_SHA.tar" script: - docker build --build-arg "CI_COMMIT_SHORT_SHA=$CI_COMMIT_SHORT_SHA" -f ./variants/Dockerfile-git -t "$CI_REGISTRY_IMAGE:$GRAV_VERSION-git" . - docker push "$CI_REGISTRY_IMAGE:$GRAV_VERSION-git"