Skip to content
Snippets Groups Projects
.gitlab-ci.yml 17.54 KiB
workflow:
  rules:
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
    - if: '$CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS && $CI_PIPELINE_SOURCE == "push"'
      when: never
    - when: always

stages:
  - build
  - test
  - check
  - deploy
  - smoketest

default:
  tags:
    - exec-docker

.dind:
  tags:
    - exec-dind
  # see https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#tls-enabled
  # for image usage and settings for building with TLS and docker in docker
  image: docker:20.10.12
  services:
    - docker:20.10.12-dind
  variables:
    DOCKER_TLS_CERTDIR: "/certs"

.kaniko-push:
  image:
    name: gcr.io/kaniko-project/executor:debug
    entrypoint: [""]
  script:
    - mkdir -p /kaniko/.docker
    - echo "{\"auths\":{\"${CR_HOST}\":{\"auth\":\"$(printf "%s:%s" "${CR_USER}" "${CR_PW}" | base64 | tr -d '\n')\"}}}" > /kaniko/.docker/config.json
    - >
      if [ $IMAGE_TAG ]; then
        KANIKO_D="$KANIKO_D -d $CR_HOST/$CR_ORG/$IMAGE_NAME:$IMAGE_TAG"
      elif [ $CI_COMMIT_TAG ]; then
        KANIKO_D="$KANIKO_D -d $CR_HOST/$CR_ORG/$IMAGE_NAME:$CI_COMMIT_TAG"
      else
        DOCKER_TAG_NAME=$(echo $CI_COMMIT_REF_SLUG- | sed 's/^master-$//')
        KANIKO_D="$KANIKO_D -d $CR_HOST/$CR_ORG/$IMAGE_NAME:${DOCKER_TAG_NAME}latest"
        KANIKO_D="$KANIKO_D -d $CR_HOST/$CR_ORG/$IMAGE_NAME:$DOCKER_TAG_NAME$CI_COMMIT_SHORT_SHA"
      fi
    - "[ $DOCKERFILE ] && KANIKO_DOCKERFILE=\"--dockerfile $DOCKERFILE\""
    - /kaniko/executor --context `pwd`/$CONTEXT $KANIKO_DOCKERFILE $KANIKO_D
    - echo "PUBLISHED_IMAGE_TAG=${CI_COMMIT_TAG-$CI_COMMIT_SHORT_SHA}" >> build.env
  artifacts:
    reports:
      dotenv: build.env


# Theodolite Docs

.docs:
  image: alpine/bundle:3.0.3
  cache:
    paths:
      - docs/vendor
  before_script:
    - cd docs
    - bundle config set --local path 'vendor'
    - bundle install
  rules:
    - changes:
      - docs/**/*
    - when: manual
      allow_failure: true