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