Skip to content

Деплой на dev

Окружение dev — первая остановка для любого изменения кода. Пуш в ветку dev автоматически запускает сборку и деплой через GitLab CI. Ручное вмешательство не требуется.

ПараметрЗначение
Веткаdev
ТриггерАвтоматический при пуше
Домен*.dev.amzhub.ai
Цель NomadDev-кластер / namespace

Шаги деплоя

1. Влейте вашу feature-ветку в dev

bash
git checkout dev
git pull origin dev
git merge feature/my-change
git push origin dev

Или используйте merge request в GitLab с целевой веткой dev.

2. CI собирает образ

После того как пуш попадает в dev, пайплайн GitLab CI запускается автоматически:

  • Этап build компилирует приложение и создаёт контейнерный образ.
  • Образ тегируется commit SHA и отправляется в реестр контейнеров.

Вы можете отслеживать пайплайн в CI/CD > Pipelines вашего проекта в GitLab.

3. CI деплоит в Nomad

После успешной сборки этап deploy:

  1. Подключается к dev KVM-хосту по SSH.
  2. Рендерит файл Nomad-задачи с переменными для dev.
  3. Отправляет задачу в Nomad (nomad job run).
  4. Nomad загружает новый образ и запускает контейнер.

4. Проверьте на dev-домене

Откройте dev-URL вашего сервиса и убедитесь, что последние изменения работают.

https://dev.amzhub.ai        # main app
https://docs-dev.amzhub.ai   # docs site

TIP

Проверьте заголовки ответа или эндпоинт /health, чтобы убедиться, что задеплоенный commit SHA соответствует ожидаемому.

Советы для быстрой итерации

Пушьте часто, пушьте мало

Dev-окружение предназначено для быстрой обратной связи. Маленькие, частые пуши гораздо проще отлаживать, чем крупные пакеты изменений.

Следите за пайплайном

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

bash
# Quick shortcut: open pipelines in your browser
glab ci view

Смотрите логи

Если у вас есть SSH-доступ к dev KVM-хосту, вы можете смотреть логи в реальном времени:

bash
# Find the running allocation
nomad job status my-service

# Stream stdout/stderr
nomad alloc logs -f <alloc-id>

Пропускайте ненужные этапы

Если общий шаблон вашего проекта это поддерживает, можно добавить [skip ci] в сообщение коммита, чтобы пропустить пайплайн — полезно для изменений, затрагивающих только документацию.

WARNING

Не пушьте сломанный код в dev и не оставляйте его. Другие разработчики используют это окружение совместно. Если ваше изменение что-то ломает, исправьте или откатите его оперативно.

Что дальше

После валидации изменений в dev, продвиньте их в stage, влив dev в stage.

Документация по инфраструктуре