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"