-
Dobromir Palushev authoredDobromir Palushev authored
.gitlab-ci.yml 2.17 KiB
workflow:
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
when: always
- if: >-
$CI_PIPELINE_SOURCE == "push"
&& ($CI_COMMIT_BRANCH == "staging" || $CI_COMMIT_BRANCH == "master")
when: always
- when: never
variables:
DOCKER_VERSION: '20.10.12'
K8S_NAMESPACE: 'devops-s22-deployable'
CONTAINER_TAG: '${CI_REGISTRY_IMAGE}:${CI_PIPELINE_IID}-${CI_COMMIT_SHORT_SHA}'
stages:
- test
- build
- deploy
job_test-image:
stage: test
tags:
- docker-priviliged
image: docker:$DOCKER_VERSION
services:
- name: docker:$DOCKER_VERSION-dind
script:
- docker build
--tag "${CONTAINER_TAG}-test"
--target=test
"./"
after_script:
- docker image rm --force "${CI_REGISTRY_IMAGE}:${CI_PIPELINE_IID}-${CI_COMMIT_SHORT_SHA}"
job_build-image:
stage: build
needs:
- 'job_test-image'
rules:
- if: $CI_COMMIT_BRANCH != "staging" && $CI_COMMIT_BRANCH != "master"
when: 'never'
tags:
- docker-priviliged
image: docker:$DOCKER_VERSION
services:
- name: docker:$DOCKER_VERSION-dind
script:
- SERVER_PUBLIC_URL=""
- DB_HOST=""
- docker build
--tag "${CONTAINER_TAG}"
--build-arg JWT_SECRET=${JWT_SECRET}
--build-arg SERVER_PUBLIC_URL=${SERVER_PUBLIC_URL}
--build-arg DB_HOST=${DB_HOST}
"./"
- docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}
- docker push "${CI_REGISTRY_IMAGE}:${CI_PIPELINE_IID}-${CI_COMMIT_SHORT_SHA}"
after_script:
- docker image rm --force "${CI_REGISTRY_IMAGE}:${CI_PIPELINE_IID}-${CI_COMMIT_SHORT_SHA}"
job_deploy-image:
stage: deploy
needs:
- 'job_build-image'
rules:
- if: $CI_COMMIT_REF_NAME =~ /staging/
when: 'always'
variables:
ENVIRONMENT_NAME: 'staging'