-
Steffen Köhler authored45b1495c
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
This GitLab CI configuration is valid.
Learn more
.gitlab-ci.yml 4.55 KiB
stages:
- build
- publish
- deploy
- docs
- mirror
cache:
untracked: true
key: "$CI_PROJECT_ID"
paths:
- ./cache/
variables:
# production_repo: ubleipzig/folio-okapi
production_repo: services.ub.uni-leipzig.de:11443/bdd_dev/folio/okapi
staging_repo: services.ub.uni-leipzig.de:11443/bdd_dev/folio/okapi
alpha_repo: services.ub.uni-leipzig.de:11443/bdd_dev/folio/okapi
DOCKER_TLS_CERTDIR: ""
OKAPI_VERSION: v5.2.0
docker_build:
stage: build
image:
name: gcr.io/kaniko-project/executor:v1.9.2-debug
entrypoint: [""]
before_script:
- export dockerconfig=${DOCKER_ALPHA_AUTH_CONFIG}
- echo -ne "Setting docker auth config ..."
- mkdir -p ${HOME}/.docker && echo "${dockerconfig}" >${HOME}/.docker/config.json
- cat ${HOME}/.docker/config.json
- mkdir -p /kaniko/.docker && echo "${dockerconfig}" >/kaniko/.docker/config.json
- cat /kaniko/.docker/config.json
script:
- cp /var/run/secrets/kubernetes.io/serviceaccount/ca.crt /etc/ssl/certs/ca-kube.crt
- update-ca-certificates
- /kaniko/executor
--context "${CI_PROJECT_DIR}"
--dockerfile "${CI_PROJECT_DIR}/Dockerfile"
--destination "${alpha_repo}:${CI_COMMIT_BRANCH}"
--destination "${alpha_repo}:alpha"
--build-arg "HTTP_PROXY=${HTTP_PROXY}"
--build-arg "HTTPS_PROXY=${HTTPS_PROXY}"
--build-arg "NO_PROXY=${NO_PROXY}"
--no-push
--tarPath image.tar
# --output image.tar.gz
# deployer build \
artifacts:
# name: docker-image
paths:
- image.tar
tags:
- kaniko
only:
changes:
- Dockerfile
- assets/**/*
- .gitlab-ci.yml
docker_publish_alpha:
stage: publish
image:
name: gcr.io/go-containerregistry/crane:debug
entrypoint: [""]
before_script:
- export dockerconfig=${DOCKER_ALPHA_AUTH_CONFIG}
- echo -ne "Setting docker auth config ..."
- mkdir -p ${HOME}/.docker && echo "${dockerconfig}" >${HOME}/.docker/config.json
- cat ${HOME}/.docker/config.json
- set
script:
- crane push image.tar "${alpha_repo}:${CI_COMMIT_BRANCH}"
- crane tag "${alpha_repo}:${CI_COMMIT_BRANCH}" "alpha"
dependencies:
- docker_build
tags:
- kaniko
only:
refs:
- branches
changes:
- Dockerfile
- .gitlab-ci.yml
- assets/**/*
except:
- master
docker_publish_staging:
stage: publish
image: ubleipzig/deployer:1.5.0-rc2
services:
- docker:dind
script: |
deployer publish \
--input image.tar.gz \
--docker-config "${DOCKER_STAGING_AUTH_CONFIG}" \
--name ${staging_repo} \
--tag ${OKAPI_VERSION} \
--tag staging
dependencies:
- docker_build
tags:
- docker
only:
refs:
- master
changes:
- Dockerfile
- assets/**/*
- .gitlab-ci.yml
## Pipeline to publish to docker-hub. Disabled at the moment.
#docker_publish_production:
# stage: publish
# image: ubleipzig/deployer:1.5.0-rc2
# services:
# - docker:dind
# script: |
# declare version=`expr "${CI_COMMIT_TAG}" ':' 'release/\(.\+\)'`
# declare major_version=`expr "${version}" ':' '\([^.]\+\)'`
# declare minor_version=`expr "${version}" ':' '[^.]\+\.\([^.]\+\)'`
# declare patch_version=`expr "${version}" ':' '[^.]\+\.[^.]\+\.\([^-]\+\)'`
# declare image_version=`expr "${version}" ':' '[^.]\+\.[^.]\+\.[^-]\+-\(.\+\)'`
# deployer publish \
# --input image.tar.gz \
# --docker-config "${DOCKER_PRODUCTION_AUTH_CONFIG}" \
# --name ${production_repo} \
# --tag latest \
# --tag ${version} \
# --tag "${major_version}.${minor_version}" \
# --tag "${major_version}"
# dependencies:
# - docker_build
# tags:
# - docker
# except:
# - branches
# only:
# refs:
# - /^release\/.*/
## Pipeline to publish to ub internal nexus.
docker_publish_production:
stage: publish
image: ubleipzig/deployer:1.5.0-rc2
services:
- docker:dind
script: |
declare version=`expr "${CI_COMMIT_TAG}" ':' 'release/\(.\+\)'`
declare major_version=`expr "${version}" ':' '\([^.]\+\)'`
declare minor_version=`expr "${version}" ':' '[^.]\+\.\([^.]\+\)'`
declare patch_version=`expr "${version}" ':' '[^.]\+\.[^.]\+\.\([^-]\+\)'`
declare image_version=`expr "${version}" ':' '[^.]\+\.[^.]\+\.[^-]\+-\(.\+\)'`
deployer publish \
--input image.tar.gz \
--docker-config "${DOCKER_STAGING_AUTH_CONFIG}" \
--name ${production_repo} \
--tag latest \
--tag ${version} \
--tag "${major_version}.${minor_version}" \
--tag "${major_version}"
dependencies:
- docker_build
tags:
- docker
except:
- branches
only:
refs:
- /^release\/.*/