summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml97
1 files changed, 41 insertions, 56 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index d62cb7a..4bc8828 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -3,6 +3,7 @@
variables:
DOCKER_DRIVER: overlay2
MAJOR: 1
+ IMAGE: $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG:$CI_COMMIT_SHA
services:
- docker:stable-dind
@@ -10,55 +11,41 @@ services:
stages:
- build
- QA
- - pre-deploy
- - deploy
+ - tag
+ - release
-.build:
+Docker build commit:
image: docker:stable
stage: build
script:
- docker info
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- - export IMAGE=$CI_REGISTRY_IMAGE:$IMAGE_TAG
- docker build -t $IMAGE .
- docker push $IMAGE
-build branch:
- extends: .build
- variables:
- IMAGE_TAG: $CI_COMMIT_REF_SLUG
- only:
- - branches
- except:
- - master
-
-build edge:
- extends: .build
- variables:
- IMAGE_TAG: edge
- only:
- - master
-
-build tag:
- extends: .build
- before_script:
- - export IMAGE_TAG=${CI_COMMIT_TAG/v/}
- only:
- - tags
-
-.QA:
+QA:
image: docker:stable
stage: QA
- before_script:
+ script:
- docker info
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- - export IMAGE=$CI_REGISTRY_IMAGE:$IMAGE_TAG
- script:
- docker pull $IMAGE
- docker run $IMAGE test
-QA branch:
- extends: .QA
+.docker_tag:
+ image: docker:stable
+ stage: tag
+ script:
+ - docker info
+ - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
+ - export SOURCE_IMAGE=$IMAGE
+ - export TARGET_IMAGE=$CI_REGISTRY_IMAGE:${IMAGE_TAG:-$CI_JOB_NAME}
+ - docker pull $SOURCE_IMAGE
+ - docker tag $SOURCE_IMAGE $TARGET_IMAGE
+ - docker push $TARGET_IMAGE
+
+branch:
+ extends: .docker_tag
variables:
IMAGE_TAG: $CI_COMMIT_REF_SLUG
only:
@@ -66,23 +53,22 @@ QA branch:
except:
- master
-QA edge:
- extends: .QA
+edge:
+ extends: .docker_tag
variables:
IMAGE_TAG: edge
only:
- master
-QA tag:
- extends: .QA
+version:
+ extends: .docker_tag
before_script:
- export IMAGE_TAG=${CI_COMMIT_TAG/v/}
only:
- tags
-tag major:
- extends: .build
- stage: pre-deploy
+major:
+ extends: .docker_tag
variables:
IMAGE_TAG: $MAJOR
only:
@@ -90,15 +76,14 @@ tag major:
when: manual
allow_failure: false
-.deploy:
- image: docker:stable
- stage: deploy
- before_script:
+.release:
+ extends: .docker_tag
+ stage: release
+ script:
- docker info
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- - export SOURCE_IMAGE=$CI_REGISTRY_IMAGE:$MAJOR
- - export TARGET_IMAGE=$CI_REGISTRY_IMAGE:$CI_JOB_NAME
- script:
+ - export SOURCE_IMAGE=$IMAGE
+ - export TARGET_IMAGE=$CI_REGISTRY_IMAGE:${IMAGE_TAG:-$CI_JOB_NAME}
- docker pull $SOURCE_IMAGE
- docker tag $SOURCE_IMAGE $TARGET_IMAGE
- docker push $TARGET_IMAGE
@@ -106,46 +91,46 @@ tag major:
- tags
latest:
- extends: .deploy
+ extends: .release
variables:
DOCKERFILE: Dockerfile.v1
11-7-stable:
- extends: .deploy
+ extends: .release
variables:
DOCKERFILE: Dockerfile.v1
11-6-stable:
- extends: .deploy
+ extends: .release
variables:
DOCKERFILE: Dockerfile.v1
11-5-stable:
- extends: .deploy
+ extends: .release
variables:
DOCKERFILE: Dockerfile.v1
11-4-stable:
- extends: .deploy
+ extends: .release
variables:
DOCKERFILE: Dockerfile.v1
11-3-stable:
- extends: .deploy
+ extends: .release
variables:
DOCKERFILE: Dockerfile.v1
11-2-stable:
- extends: .deploy
+ extends: .release
variables:
DOCKERFILE: Dockerfile.v1
11-1-stable:
- extends: .deploy
+ extends: .release
variables:
DOCKERFILE: Dockerfile.v1
11-0-stable:
- extends: .deploy
+ extends: .release
variables:
DOCKERFILE: Dockerfile.v1