From be59881974e970b07d7839aaba2fe0fecb17fbc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Jacquin?= Date: Sun, 17 Sep 2017 18:28:22 +0200 Subject: [PATCH 1/2] Split Docker image build and deployment. Image is now deployed only on tag creation. Latest tag was added (better pour image usage) --- .gitlab-ci.yml | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e775255..fb38e12 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,12 +3,17 @@ image: docker:latest # When using dind, it's wise to use the overlayfs driver for # improved performance. variables: - DOCKER_DRIVER: overlay + DOCKER_DRIVER: overlay IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME + IMAGE_LATEST: $CI_REGISTRY_IMAGE:latest services: - docker:dind +stages: + - build + - deploy + before_script: - docker info - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY @@ -17,4 +22,12 @@ build: stage: build script: - docker build -t $IMAGE_TAG . - - docker push $IMAGE_TAG + +deploy: + stage: deploy + script: + - docker build -t $IMAGE_TAG -t $IMAGE_LATEST . + - docker push $CI_REGISTRY_IMAGE + only: + - tags + From 1c2df8d832e40e49b8534750c1d680982bd81770 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Jacquin?= Date: Sun, 17 Sep 2017 20:10:34 +0200 Subject: [PATCH 2/2] Add tests for docker image --- .gitlab-ci.yml | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fb38e12..add04e0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,8 +3,8 @@ image: docker:latest # When using dind, it's wise to use the overlayfs driver for # improved performance. variables: - DOCKER_DRIVER: overlay - IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME + DOCKER_DRIVER: overlay + IMAGE_NAME: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME IMAGE_LATEST: $CI_REGISTRY_IMAGE:latest services: @@ -12,6 +12,8 @@ services: stages: - build + - test + - cleanup - deploy before_script: @@ -21,13 +23,20 @@ before_script: build: stage: build script: - - docker build -t $IMAGE_TAG . + - docker build -t $IMAGE_NAME . + - docker push $IMAGE_NAME + +test: + stage: test + script: + - docker pull $IMAGE_NAME + - docker run -v `pwd`:/git $IMAGE_NAME /bin/sh -c "wget -qO- https://fedoraproject.org/static/hotspot.txt | grep OK && cd /git && hugo" deploy: stage: deploy script: - - docker build -t $IMAGE_TAG -t $IMAGE_LATEST . - - docker push $CI_REGISTRY_IMAGE + - docker pull $IMAGE_NAME + - docker tag $IMAGE_NAME $IMAGE_LATEST + - docker push $IMAGE_LATEST only: - tags -