Skip to content
страница целиком, в Markdown — вставьте в чат с моделью

Деплой на 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 компилирует приложение и создаёт контейнерный образ.
  • Образ тегируется именем окружения (:dev) и отправляется в registry.amztop.io.

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

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

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

  1. Обращается к Nomad API напрямую с раннера.
  2. Отправляет задачу в namespace dev с -var-file=nomad/vars-dev.hcl.
  3. Nomad размещает аллокацию на dev-ноде — по constraint с meta.env.
  4. Нода тянет образ :dev и поднимает канареечную копию рядом со старой.

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

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

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

TIP

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

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

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

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

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

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

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

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

Логи доступны из Nomad UI и через CLI — нужен WireGuard и токен:

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

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

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

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

WARNING

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

Что дальше ​

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

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