file-setup/.gitlab-ci.yml

72 lines
1.9 KiB
YAML
Raw Normal View History

2020-10-07 15:14:48 +00:00
image: docker:19.03.13
2020-01-07 14:13:10 +00:00
variables:
2020-10-07 15:14:48 +00:00
DOCKER_TLS_CERTDIR: "/certs"
services:
- docker:19.03.13-dind
2020-01-07 14:13:10 +00:00
stages:
- build
- push
2020-10-07 15:14:48 +00:00
.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
2020-01-07 14:13:10 +00:00
2020-10-07 15:14:48 +00:00
build_image:
2020-01-07 14:13:10 +00:00
script:
2020-10-07 15:14:48 +00:00
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- docker build -t $INTERMEDIATE_IMAGE_TAG .
- docker push $INTERMEDIATE_IMAGE_TAG
2020-01-07 14:13:10 +00:00
stage: build
tags:
2020-10-07 15:14:48 +00:00
- docker
variables:
INTERMEDIATE_IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
2020-01-07 14:13:10 +00:00
2020-10-07 15:14:48 +00:00
push_master:
extends:
- .reg_setup
2020-01-07 14:13:10 +00:00
only:
- master
script:
2020-10-07 15:14:48 +00:00
- 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
2020-01-07 14:13:10 +00:00
stage: push
tags:
2020-10-07 15:14:48 +00:00
- docker
variables:
IMAGE_TAG: $CI_REGISTRY_IMAGE:latest
INTERMEDIATE_IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
2020-01-07 14:13:10 +00:00
2020-10-07 15:14:48 +00:00
push_other:
extends:
- .reg_setup
except:
- master
2020-01-07 14:13:10 +00:00
only:
2020-10-07 15:14:48 +00:00
- branches
2020-01-07 14:13:10 +00:00
- tags
script:
2020-10-07 15:14:48 +00:00
- 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
2020-01-07 14:13:10 +00:00
stage: push
tags:
2020-10-07 15:14:48 +00:00
- docker
variables:
IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
INTERMEDIATE_IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA