-
Yaroslav Dynnikov authoredYaroslav Dynnikov authored
.gitlab-ci.yml 3.79 KiB
variables:
MAIN_BRANCH: &main-branch main
BASE_IMAGE_NAME: $CI_REGISTRY_IMAGE
BASE_IMAGE_TAG: $CI_COMMIT_SHA
DOCKER_AUTH_CONFIG: $DOCKER_AUTH_RO
KANIKO_REGISTRY_MIRROR: docker-proxy.binary.picodata.io
workflow:
# See https://docs.gitlab.com/ee/ci/jobs/job_control.html#avoid-duplicate-pipelines
rules:
# To avoid duplicate pipelines we disable merge request events,
# leaving only pushes and manual triggering.
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
when: never
- if: $CI_PIPELINE_SOURCE == "push"
- if: $CI_PIPELINE_SOURCE == "web"
default:
tags:
- docker
stages:
- build-base-image
- lint
- pack-doc
- upload
- deploy
build-base-image:
stage: build-base-image
variables:
DOCKERFILE: "Dockerfile"
PUSH_DOCKER: ""
GIT_USERNAME: $CI_REGISTRY_USER
GIT_PASSWORD: $CI_REGISTRY_PASSWORD
image:
name: docker-public.binary.picodata.io/kaniko-project/executor:v1.20.1-debug
entrypoint: ['']
pull_policy: [if-not-present]
script:
- echo "Build picodata doc..."
- cd docker/static
- >
/kaniko/executor --context $CI_PROJECT_DIR --dockerfile ${DOCKERFILE}
--build-arg IMAGE_DIR=$CI_PROJECT_DIR
--build-arg COMMIT_HASH=${CI_COMMIT_SHA} ${PUSH_DOCKER}
--cache=false --cache-run-layers=true --single-snapshot --compressed-caching=false --use-new-run --snapshot-mode=redo --cleanup
--destination ${BASE_IMAGE_NAME}:${BASE_IMAGE_TAG}
lint:
image: ${BASE_IMAGE_NAME}:${BASE_IMAGE_TAG}
stage: lint
script:
- echo "Checking picodata doc..."
- pipenv run lint
- echo "Picodata doc successfully checked"
pack-doc:
image: ${BASE_IMAGE_NAME}:${BASE_IMAGE_TAG}
stage: pack-doc
variables:
SED_SLUG: 's/[^a-zA-Z0-9.]+/_/g'
before_script:
- |
if [ "$CI_COMMIT_BRANCH" == "main" ]; then
PICODATA_DOC_VER="devel"
elif [ "$CI_COMMIT_BRANCH" == "$MAIN_BRANCH" ]; then
PICODATA_DOC_VER="$MAIN_BRANCH"
else