27 lines
830 B
YAML
27 lines
830 B
YAML
stages:
|
||
- deploy
|
||
|
||
# Деплой на self-hosted runner с тегом docker (см. Ansible: gitlab-runner).
|
||
deploy_production:
|
||
stage: deploy
|
||
image: alpine:3.19
|
||
tags:
|
||
- docker
|
||
variables:
|
||
GIT_STRATEGY: none
|
||
rules:
|
||
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
||
before_script:
|
||
- apk add --no-cache openssh-client bash
|
||
- eval $(ssh-agent -s)
|
||
- echo "$CI_DEPLOY_SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
|
||
- mkdir -p ~/.ssh && chmod 700 ~/.ssh
|
||
- ssh-keyscan -H "$DEPLOY_HOST" >> ~/.ssh/known_hosts 2>/dev/null || true
|
||
script:
|
||
- |
|
||
ssh "${DEPLOY_USER}@${DEPLOY_HOST}" "set -e
|
||
cd '${DEPLOY_PATH}'
|
||
git fetch origin
|
||
git reset --hard 'origin/${CI_DEFAULT_BRANCH}'
|
||
docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d --build --remove-orphans"
|