GitLab CI/CD позволяет автоматически деплоить Битрикс на сервер при каждом коммите. Рассмотрим безопасный подход с откатом при ошибке.
Что хранить в Git
Рекомендуется хранить только публичную часть и /local/. Добавьте в .gitignore:
/bitrix/
/upload/
/bitrix/cache/
.settings.php
SSH-ключи для деплоя
ssh-keygen -t ed25519 -f deploy_key -N ""
Приватный ключ добавьте в GitLab: Settings → CI/CD → Variables → DEPLOY_KEY. Публичный — в ~/.ssh/authorized_keys на сервере.
.gitlab-ci.yml
stages: [deploy]
deploy_production:
stage: deploy
only: [main]
before_script:
- eval $(ssh-agent -s)
- echo "$DEPLOY_KEY" | ssh-add -
- ssh-keyscan $SERVER_HOST >> ~/.ssh/known_hosts
script:
- ssh $SERVER_USER@$SERVER_HOST "
cd /var/www/site &&
git pull origin main &&
rm -rf bitrix/cache/* bitrix/managed_cache/*
"
Symlink для .settings.php
Файл настроек не хранится в Git — на сервере он хранится отдельно и подключается симлинком:
ln -sf /var/www/configs/.settings.php /var/www/site/bitrix/.settings.php
Откат при ошибке
script:
- ssh $SERVER_USER@$SERVER_HOST "
cd /var/www/site &&
git fetch origin &&
git reset --hard origin/main || git reset --hard HEAD~1
"
