Updated for more controlled image pushes

This commit is contained in:
WilliamMiceli
2019-11-12 18:13:47 -05:00
parent 759a846271
commit 66a07aba19

View File

@@ -1,24 +1,19 @@
image: docker:latest image: docker:latest
services:
- docker:dind
stages: stages:
- Build Image - Build Base
- Push Image - Push Images
variables: variables:
DOCKER_HOST: tcp://docker:2375/ DOCKER_HOST: tcp://docker:2375/
DOCKER_DRIVER: overlay2 DOCKER_DRIVER: overlay2
build-image: 0-build-base:
stage: Build Image stage: Build Base
artifacts: artifacts:
expire_in: 1 week expire_in: 1 week
paths: paths:
- ./images/ - ./images/
except:
- pushes
tags: tags:
- docker - docker
before_script: 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 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" - docker save --output "./images/$CI_COMMIT_SHORT_SHA.tar" "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA"
push-image: 1A-push-dev:
stage: Push Image stage: Push Images
dependencies: dependencies:
- build-image - build-image
except:
- pushes
tags: tags:
- docker - 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: before_script:
- docker load --input "./images/$CI_COMMIT_SHORT_SHA.tar" - docker load --input "./images/$CI_COMMIT_SHORT_SHA.tar"
- echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin - echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin
script: script:
- docker tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" "$CI_REGISTRY_IMAGE:$IMAGE_TAG" - docker tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" "$CI_REGISTRY_IMAGE:$IMAGE_TAG"
- docker push "$CI_REGISTRY_IMAGE:$IMAGE_TAG" - 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"