From 66a07aba190fd9afd852765f2ee4397b51960db2 Mon Sep 17 00:00:00 2001 From: WilliamMiceli Date: Tue, 12 Nov 2019 18:13:47 -0500 Subject: [PATCH] Updated for more controlled image pushes --- .gitlab-ci.yml | 49 +++++++++++++++++++++++++++++++++++-------------- 1 file changed, 35 insertions(+), 14 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 582fc9c..c7cd0f6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,24 +1,19 @@ image: docker:latest -services: - - docker:dind - stages: - - Build Image - - Push Image + - Build Base + - Push Images variables: DOCKER_HOST: tcp://docker:2375/ DOCKER_DRIVER: overlay2 -build-image: - stage: Build Image +0-build-base: + stage: Build Base artifacts: expire_in: 1 week paths: - ./images/ - except: - - pushes tags: - docker before_script: @@ -27,17 +22,43 @@ build-image: - docker build --pull --build-arg "IMAGE_TAG=$IMAGE_TAG" -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" . - docker save --output "./images/$CI_COMMIT_SHORT_SHA.tar" "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" -push-image: - stage: Push Image +1A-push-dev: + stage: Push Images dependencies: - build-image - except: - - pushes tags: - docker + before_script: + - docker load --input "./images/$CI_COMMIT_SHORT_SHA.tar" + - echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin + script: + - docker tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" "$CI_REGISTRY_IMAGE:dev-$IMAGE_TAG-$CI_PIPELINE_ID" + - docker push "$CI_REGISTRY_IMAGE:dev-$IMAGE_TAG-$CI_PIPELINE_ID" + +1B-push-version: + stage: Push Images + dependencies: + - build-image + tags: + - docker + when: manual before_script: - docker load --input "./images/$CI_COMMIT_SHORT_SHA.tar" - echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin script: - docker tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" "$CI_REGISTRY_IMAGE:$IMAGE_TAG" - - docker push "$CI_REGISTRY_IMAGE:$IMAGE_TAG" \ No newline at end of file + - docker push "$CI_REGISTRY_IMAGE:$IMAGE_TAG" + +1C-push-latest: + stage: Push Images + dependencies: + - build-image + tags: + - docker + when: manual + before_script: + - docker load --input "./images/$CI_COMMIT_SHORT_SHA.tar" + - echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin + script: + - docker tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" "$CI_REGISTRY_IMAGE:latest" + - docker push "$CI_REGISTRY_IMAGE:latest" \ No newline at end of file