variables: CONTAINER_TEST_IMAGE: $CI_REGISTRY_IMAGE/test:$CI_PIPELINE_SOURCE-$CI_PIPELINE_ID-$CI_COMMIT_SHA stages: - build - test - release .dind: image: docker:latest variables: DOCKER_BUILDKIT: "1" services: - docker:dind before_script: - env | grep -E '^CONTAINER_' | sort - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY build: extends: .dind stage: build script: | docker build --pull -t $CONTAINER_TEST_IMAGE docker docker push $CONTAINER_TEST_IMAGE .release: extends: .dind stage: release script: | docker pull $CONTAINER_TEST_IMAGE docker tag $CONTAINER_TEST_IMAGE $CONTAINER_IMAGE docker push $CONTAINER_IMAGE release branch: extends: .release variables: CONTAINER_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME except: - master - tags release master: extends: .release variables: CONTAINER_IMAGE: $CI_REGISTRY_IMAGE:latest only: - master release tag: extends: .release variables: CONTAINER_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG only: - tags # vim:ts=2:sw=2:et