CI выполняет тот же процесс build/deploy, что и ручные команды. Сначала выберите, где собирать приложение, затем настройте доступы и релизную ветку. Первоначальное размещение и обычное обновление — разные действия.
Выберите доставку
В Deployment → Defaults задайте CI provider и Image delivery. В Environments создайте профиль и заполните сервер, домены и хранилища.
| Доставка | Сборка | Что получает VPS |
|---|---|---|
| Source + GitLab | На одном VPS внутри Deploy job | Исходный код конкретного коммита; образы собираются на месте |
| Archive + GitLab/GitHub | На runner | Готовые release.json и архив Docker-образов |
| Registry + GitLab/GitHub | На runner | Релиз с адресами образов в registry |
Source также можно использовать вручную без CI. Source + GitHub в текущем генераторе не поддерживается. Registry не обязан совпадать с CI-провайдером, а backup выбирается независимо от доставки.
Подготовьте доступы
Один раз выполните подготовку VPS и доменов. Для обычного профиля CI читает generated JSON и custom overlay из Git; копировать полный конфиг в secrets не требуется. Ключи SSH и credentials registry передаются отдельными защищёнными переменными.
Для Source серверу дополнительно нужен доступ к GitLab-репозиторию. Это другой ключ, чем CI → VPS. В UI укажите путь к существующему серверному Git checkout. Для нескольких проектов одного Unix-пользователя Source CI использует общую очередь сборок, а данные каждого проекта остаются отдельными.
Первый и последующие выпуски
Для новой установки нужны Provision и первый Deploy. Для обычного обновления — только Deploy. Generate пишет файлы, но сам не меняет сервер и не переносит локальный контент.
В GitLab Release branch настраивается в UI; по умолчанию main. Ручной Deploy включён по умолчанию, Automatic deploy — отдельная опция. В Source нет отдельного Build-job: он находится внутри Deploy. В Archive/Registry сначала выполняется Build, затем используется его артефакт.
| Что меняете | Действие |
|---|---|
| Код и модель | Commit → релизная ветка → Deploy |
| Записи/контент сервера | Сохранить в системе администрирования |
| Поддерживаемые настройки доставки/backup | Явный reconfigure |
| Первоначальные данные из локальной БД | Отдельный перенос, один раз |
GitLab: настройка и запуск · GitHub: настройка и запуск · Обновление приложения
При прерывании job сначала посмотрите состояние окружения. Новый pipeline не отменяет уже выполненные действия: следуйте восстановлению операций. Старые сборки и архивы автоматически не очищаются; для них есть инструкция по диску.