--- /dev/null
+variables:
+ CONTAINER_TEST_IMAGE: $CI_REGISTRY_IMAGE:$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