Деплой на dev
Окружение dev — первая остановка для любого изменения кода. Пуш в ветку dev автоматически запускает сборку и деплой через GitLab CI. Ручное вмешательство не требуется.
| Параметр | Значение |
|---|---|
| Ветка | dev |
| Триггер | Автоматический при пуше |
| Домен | dev-*.amzhub.ai |
| Цель Nomad | Dev-кластер / namespace |
Шаги деплоя
1. Влейте вашу feature-ветку в dev
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:
- Обращается к Nomad API напрямую с раннера.
- Отправляет задачу в namespace
devс-var-file=nomad/vars-dev.hcl. - Nomad размещает аллокацию на dev-ноде — по
constraintсmeta.env. - Нода тянет образ
:devи поднимает канареечную копию рядом со старой.
4. Проверьте на dev-домене
Откройте dev-URL вашего сервиса и убедитесь, что последние изменения работают.
https://dev.amzhub.ai # main app
https://docs-dev.amztop.io # docs siteTIP
Проверьте эндпоинт /health или переменную DEPLOY_TS в контейнере, чтобы убедиться, что приехала ожидаемая сборка.
Советы для быстрой итерации
Пушьте часто, пушьте мало
Dev-окружение предназначено для быстрой обратной связи. Маленькие, частые пуши гораздо проще отлаживать, чем крупные пакеты изменений.
Следите за пайплайном
Держите страницу пайплайна GitLab открытой во время итерации. Если сборка упадёт, вы увидите это за секунды.
# Quick shortcut: open pipelines in your browser
glab ci viewСмотрите логи
Логи доступны из Nomad UI и через CLI — нужен WireGuard и токен:
# 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.