From e60bb4151ccc46c8402b9988444f5b36e4508c6b Mon Sep 17 00:00:00 2001 From: Patrick Jentsch Date: Wed, 7 Oct 2020 17:14:48 +0200 Subject: [PATCH] Update CI script --- .gitlab-ci.yml | 69 +++++++++++++++++++++++++++++++++++--------------- 1 file changed, 48 insertions(+), 21 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ea08fd4..3d97cac 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,44 +1,71 @@ -image: docker:stable - -services: - - docker:stable-dind +image: docker:19.03.13 variables: - DOCKER_DRIVER: overlay2 + DOCKER_TLS_CERTDIR: "/certs" + +services: + - docker:19.03.13-dind stages: - build - push -before_script: - - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY +.reg_setup: + before_script: + - apk add --no-cache curl + - curl --fail --show-error --location "https://github.com/genuinetools/reg/releases/download/v$REG_VERSION/reg-linux-amd64" --output /usr/local/bin/reg + - echo "$REG_SHA256 /usr/local/bin/reg" | sha256sum -c - + - chmod a+x /usr/local/bin/reg + variables: + REG_SHA256: ade837fc5224acd8c34732bf54a94f579b47851cc6a7fd5899a98386b782e228 + REG_VERSION: 0.16.1 -Build: +build_image: script: - - docker build --pull -t $CI_REGISTRY_IMAGE:tmp . - - docker push $CI_REGISTRY_IMAGE:tmp + - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY + - docker build -t $INTERMEDIATE_IMAGE_TAG . + - docker push $INTERMEDIATE_IMAGE_TAG stage: build tags: - - docker + - docker + variables: + INTERMEDIATE_IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA -Push latest: +push_master: + extends: + - .reg_setup only: - master script: - - docker pull $CI_REGISTRY_IMAGE:tmp - - docker tag $CI_REGISTRY_IMAGE:tmp $CI_REGISTRY_IMAGE:latest - - docker push $CI_REGISTRY_IMAGE:latest + - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY + - docker pull $INTERMEDIATE_IMAGE_TAG + - /usr/local/bin/reg rm -d --auth-url $CI_REGISTRY -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $INTERMEDIATE_IMAGE_TAG + - docker tag $INTERMEDIATE_IMAGE_TAG $IMAGE_TAG + - docker push $IMAGE_TAG stage: push tags: - - docker + - docker + variables: + IMAGE_TAG: $CI_REGISTRY_IMAGE:latest + INTERMEDIATE_IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA -Push tag: +push_other: + extends: + - .reg_setup + except: + - master only: + - branches - tags script: - - docker pull $CI_REGISTRY_IMAGE:tmp - - docker tag $CI_REGISTRY_IMAGE:tmp $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME - - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME + - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY + - docker pull $INTERMEDIATE_IMAGE_TAG + - /usr/local/bin/reg rm -d --auth-url $CI_REGISTRY -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $INTERMEDIATE_IMAGE_TAG + - docker tag $INTERMEDIATE_IMAGE_TAG $IMAGE_TAG + - docker push $IMAGE_TAG stage: push tags: - - docker + - docker + variables: + IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME + INTERMEDIATE_IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA