You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

138 lines
4.0 KiB

---
variables:
DOCKER_IMAGE_TAG: ${YC_CONTAINER_REGISTRY}/${CI_PROJECT_NAME}:${CI_COMMIT_REF_SLUG}.${CI_COMMIT_SHORT_SHA}
RELEASE_DOCKER_IMAGE_TAG: ${YC_CONTAINER_REGISTRY}/${CI_PROJECT_NAME}:${CI_COMMIT_TAG}
DEPLOY_KUBER_NAMESPACE: spatial
stages:
- build
# - lint
- deploy
build-docker:
stage: build
tags:
- shell
script:
- >
docker build
--build-arg YC_CONTAINER_REGISTRY=${YC_CONTAINER_REGISTRY}
-t ${DOCKER_IMAGE_TAG} .
- docker push ${DOCKER_IMAGE_TAG}
deploy_dev_kuber:
extends: .deploy_base_kuber
variables:
INGRESS_HOST: "postnet.dev.selftech.ru"
tags:
- docker
environment:
name: dev
.deploy_base_kuber:
image: ${YC_CONTAINER_REGISTRY}/public/helm-kubectl-git:1.0.0
stage: deploy
before_script:
- KUBE_CONFIG=`echo ${CI_ENVIRONMENT_NAME}_kubeconfig`
- mkdir -p ${HOME}/.kube
- 'cat ${!KUBE_CONFIG} > ${HOME}/.kube/config'
- chmod -R 700 ${HOME}/.kube
script:
- sed -i "s|DEPLOY_IMAGE_TAG|${DOCKER_IMAGE_TAG}|g" ./deploy/django.yml
- sed -i "s|ADDRESS_INGRESS_HOST|${INGRESS_HOST}|g" ./deploy/django.yml
- sed -i "s|DEPLOY_IMAGE_TAG|${DOCKER_IMAGE_TAG}|g" ./deploy/worker.yml
- sed -i "s|DEPLOY_IMAGE_TAG|${DOCKER_IMAGE_TAG}|g" ./deploy/beat.yml
- kubectl apply -f ./deploy/django.yml
- kubectl apply -f ./deploy/worker.yml
- kubectl apply -f ./deploy/beat.yml
dependencies: []
artifacts:
paths:
- ./deploy/django.yml
- ./deploy/worker.yml
- ./deploy/beat.yml
expire_in: 1 week
when: manual
# variables:
# CONTAINERS_NAME: sst_postamates
# IMAGE_NAME: $CI_REGISTRY_IMAGE
# default:
# tags:
# - deploy-remote
# .use_cached_requirements: &use_cached_requirements
# variables:
# PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
# cache:
# key: $CI_COMMIT_REF_SLUG
# paths:
# - .cache/pip
# policy: pull-push
# build-job:
# stage: build
# before_script:
# - sudo docker login -u $CI_DEPLOY_USER -p $CI_DEPLOY_PASSWORD $CI_REGISTRY
# - ls
# script:
# - sudo docker pull $IMAGE_NAME:latest || true
# - sudo docker build --cache-from $IMAGE_NAME:latest --tag $IMAGE_NAME:$CI_COMMIT_SHORT_SHA --tag $IMAGE_NAME:latest .
# - sudo docker push $IMAGE_NAME:$CI_COMMIT_SHORT_SHA
# - sudo docker push $IMAGE_NAME:latest
# rules:
# - if: $CI_COMMIT_BRANCH == 'sst_main'
# .deploy: &deploy-common
# stage: deploy
# before_script:
# - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client git -y )'
# - eval $(ssh-agent -s)
# - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
# - mkdir -p ~/.ssh
# - chmod 700 ~/.ssh
# - ssh-keyscan $REMOTE_HOST >> ~/.ssh/known_hosts
# - chmod 644 ~/.ssh/known_hosts
# - ssh $REMOTE_USER docker login -u $CI_DEPLOY_USER -p $CI_DEPLOY_PASSWORD $CI_REGISTRY
# script:
# - cd $CI_PROJECT_DIR
# - ssh $REMOTE_USER docker pull $IMAGE_NAME:$CI_COMMIT_SHORT_SHA
# - DOCKER_HOST="ssh://$REMOTE_USER" docker-compose -f $COMPOSE up -d
# - DOCKER_HOST="ssh://$REMOTE_USER" docker restart sst_postamates_martin
# deploy-test-job:
# <<: *deploy-common
# variables:
# REMOTE_HOST: $REMOTE_HOST_TEST
# REMOTE_USER: $REMOTE_USER_TEST
# COMPOSE: docker-compose.test.yml
# rules:
# - if: $CI_COMMIT_BRANCH == 'sst_main'
# pylint:
# <<: *use_cached_requirements
# stage: lint
# before_script:
# - pip install flake8-codeclimate
# script:
# - set -x
# - FLIST=$(git --no-pager diff --diff-filter=d --name-only $(git merge-base --fork-point origin/$CI_MERGE_REQUEST_TARGET_BRANCH_NAME) $CI_COMMIT_SHA | egrep ".py$" | grep -v ".docker/"|| true)
# - >
# if [ ! -z "$FLIST" ];
# then
# mkdir -p build/reports;
# flake8 --format junit-xml $FLIST > build/reports/flake8-junit.xml || flake8 $FLIST;
# else
# echo "No files to lint"
# true;
# fi
# only:
# refs:
# - merge_requests
# artifacts:
# reports:
# junit: ./build/reports/flake8-junit.xml
# expire_in: 7 days
# allow_failure: false