mirror of
https://gitlab.com/megazordpobeda/DataRush.git
synced 2026-05-23 01:37:11 +00:00
feat: added undeploy for production environment
This commit is contained in:
+37
-9
@@ -3,8 +3,8 @@ stages:
|
|||||||
- deploy
|
- deploy
|
||||||
|
|
||||||
variables:
|
variables:
|
||||||
DOCKER_TLS_CERTDIR: /certs
|
|
||||||
DEPLOYMENT_VERSION: $CI_COMMIT_SHA
|
DEPLOYMENT_VERSION: $CI_COMMIT_SHA
|
||||||
|
DEPLOYMENT_PROFILES: "celery,docs"
|
||||||
|
|
||||||
.build-template: &build-template
|
.build-template: &build-template
|
||||||
stage: build
|
stage: build
|
||||||
@@ -72,6 +72,14 @@ build_docs:
|
|||||||
DOCKERFILE_PATH: Dockerfile
|
DOCKERFILE_PATH: Dockerfile
|
||||||
IMAGE_NAME: $CI_REGISTRY_IMAGE/docs
|
IMAGE_NAME: $CI_REGISTRY_IMAGE/docs
|
||||||
|
|
||||||
|
.ssh-setup: &ssh-setup |
|
||||||
|
mkdir -p ~/.ssh
|
||||||
|
chmod 700 ~/.ssh
|
||||||
|
echo -e "Host *\n\tStrictHostKeyChecking no\n\tIdentitiesOnly yes\n\n" > ~/.ssh/config
|
||||||
|
echo "$SSH_PRIVATE_KEY_BASE64" | base64 -d > ~/.ssh/id_rsa
|
||||||
|
chmod 600 ~/.ssh/id_rsa
|
||||||
|
ssh-keyscan -H $SSH_HOST -p $SSH_PORT > /dev/null 2>&1
|
||||||
|
|
||||||
deploy:
|
deploy:
|
||||||
image: kroniak/ssh-client:3.19
|
image: kroniak/ssh-client:3.19
|
||||||
stage: deploy
|
stage: deploy
|
||||||
@@ -83,14 +91,10 @@ deploy:
|
|||||||
environment:
|
environment:
|
||||||
name: production
|
name: production
|
||||||
url: https://datarush.itqdev.xyz
|
url: https://datarush.itqdev.xyz
|
||||||
|
on_stop: undeploy
|
||||||
resource_group: production
|
resource_group: production
|
||||||
script:
|
script:
|
||||||
- mkdir -p ~/.ssh
|
- *ssh-setup
|
||||||
- chmod 700 ~/.ssh
|
|
||||||
- echo -e "Host *\n\tStrictHostKeyChecking no\n\tIdentitiesOnly yes\n\n" > ~/.ssh/config
|
|
||||||
- echo "$SSH_PRIVATE_KEY_BASE64" | base64 -d > ~/.ssh/id_rsa
|
|
||||||
- chmod 600 ~/.ssh/id_rsa
|
|
||||||
- ssh-keyscan -H $SSH_HOST -p $SSH_PORT > /dev/null 2>&1
|
|
||||||
|
|
||||||
- AUTH_COMMAND="echo "$CI_REGISTRY_PASSWORD" | docker login $CI_REGISTRY --username $CI_REGISTRY_USER --password-stdin";
|
- AUTH_COMMAND="echo "$CI_REGISTRY_PASSWORD" | docker login $CI_REGISTRY --username $CI_REGISTRY_USER --password-stdin";
|
||||||
- ssh -p $SSH_PORT $SSH_ADDRESS "$AUTH_COMMAND" > /dev/null 2>&1
|
- ssh -p $SSH_PORT $SSH_ADDRESS "$AUTH_COMMAND" > /dev/null 2>&1
|
||||||
@@ -104,9 +108,33 @@ deploy:
|
|||||||
cd ~/deploy
|
cd ~/deploy
|
||||||
|
|
||||||
docker compose pull --policy always -q > deploy.log 2>&1
|
docker compose pull --policy always -q > deploy.log 2>&1
|
||||||
docker compose --profile celery --profile docs up -d --remove-orphans --force-recreate >> deploy.log 2>&1
|
docker compose --profile celery --profile docs up -d --remove-orphans --force-recreate --yes >> deploy.log 2>&1
|
||||||
docker compose ps >> deploy.log 2>&1
|
docker compose ps >> deploy.log 2>&1
|
||||||
|
|
||||||
nohup docker system prune -a --force >> deploy.log 2>&1 &
|
nohup docker system prune -a --force >> deploy.log 2>&1 &
|
||||||
EOF
|
EOF
|
||||||
retry: 2
|
|
||||||
|
undeploy:
|
||||||
|
image: kroniak/ssh-client:3.19
|
||||||
|
stage: deploy
|
||||||
|
when: manual
|
||||||
|
rules:
|
||||||
|
- if: $CI_COMMIT_REF_NAME == "master"
|
||||||
|
variables:
|
||||||
|
SSH_ADDRESS: $SSH_USER@$SSH_HOST
|
||||||
|
SSH_PRIVATE_KEY_BASE64: $SSH_PRIVATE_KEY_BASE64
|
||||||
|
environment:
|
||||||
|
name: production
|
||||||
|
action: stop
|
||||||
|
resource_group: production
|
||||||
|
script:
|
||||||
|
- *ssh-setup
|
||||||
|
|
||||||
|
- |
|
||||||
|
ssh -p $SSH_PORT $SSH_ADDRESS > /dev/null 2>&1 <<'EOF'
|
||||||
|
cd ~/deploy
|
||||||
|
|
||||||
|
docker compose --profile celery --profile docs down --remove-orphans > undeploy.log 2>&1
|
||||||
|
docker compose ps >> undeploy.log 2>&1
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|||||||
Reference in New Issue
Block a user