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