Сайт ↗
Разделы документации
Эксплуатация · 0.8.1

CI/CD: сборка и выпуск через GitLab или GitHub

Выберите CI-систему, настройте сборку и выпускайте готовые версии на сервер.

На этой странице

CI собирает приложение после push в main. Выпуск на сервер запускается отдельно: вы выбираете успешную сборку и подтверждаете её установку.

1. Выберите способ доставки

В Deployment выберите CI provider — GitLab или GitHub. В Deployment environments создайте профиль production, заполните параметры VPS и выберите Archive или Registry. Сохраните настройки, выполните Generate и закоммитьте профиль вместе с проектом.

Доставка Результат сборки
Archive release.json и соседний *.images.tar с Docker-образами
Registry Образы в выбранном registry и файл release.json

release.json создаёт сборка. Он описывает конкретную версию приложения и не содержит БД или загруженных пользователями изображений. Archive храните вместе с JSON.

Registry не обязан совпадать с CI-системой: например, GitHub Actions может публиковать в Docker Hub. Source предназначен для ручной сборки на VPS, сгенерированные CI-задания его не поддерживают.

2. Подготовьте сервер и окружение

Один раз выполните подготовку сервера и создайте файл окружения. CI использует те же настройки, что и ручные команды.

3. Настройте выбранную CI-систему

  • GitLab CI/CD — переменные проекта, runner и ручной запуск deploy из pipeline.
  • GitHub Actions — secrets, environments и выбор сборки для выпуска.

CI читает сгенерированный профиль и custom-файл из Git тем же способом, что и ручной control. Для обычной настройки через UI переносить полный JSON в CI secrets не требуется. Секреты SSH и registry задаются отдельно. ADMINGEN_BUILD_ENVIRONMENT_JSON и ADMINGEN_ENVIRONMENT_JSON остаются необязательными полными ручными переопределениями для тех, кто хранит конфигурацию вне Git.

4. Подготовьте первый релиз

Отправьте код в main, дождитесь build и скачайте его результат. Выполните первоначальный provision по инструкции выбранного режима: Archive или Registry. В этих инструкциях используйте уже скачанный релиз вместо повторной сборки.

После provisioning запустите deploy в CI. Для следующих версий provisioning повторять не нужно.

Что происходит дальше

CI отправляет на сервер готовую сборку, без повторной компиляции. До deploy приложение продолжает работать на прежней версии. Задания обслуживания отдельно создают резервные копии и обслуживают сертификаты; новый код они не выпускают.

Артефакты CI хранятся 90 дней. Сохраните нужные релизы отдельно; для Registry также сохраняйте их образы в registry. При backup.kind: none обслуживание пропускает создание копии, но продолжает работу с сертификатами.

Если задание было прервано, откройте восстановление операций. Повторный запуск pipeline не отменяет уже выполненные действия на сервере.