layero promote
Перевести production apex <org>-<project>.layero.ru на указанный деплой. Двигает указатель production_deploy_id — без пересборки, апекс начинает отдавать новый артефакт через ~30–60 секунд (время CDN cache propagation).
Зачем
Production-флоу в Layero «как у Vercel»:
- Push в любую ветку → preview-URL ветки (24 ч TTL)
- Тестируем, шерим, сравниваем
- Готовы выкатить — promote на тот ready-деплой, который проверили
Без promote'а apex продолжает отдавать предыдущий production. Это страховка от случайных релизов после merge'а в main (если auto-promote выключен для команды).
Использование
# promote последнего ready-деплоя default-ветки
layero promote
# promote по commit SHA (первые 7+ символов) или полному deploy id
layero promote --deploy=a3f9c2b
layero promote --deploy=550e8400-e29b-41d4-a716-446655440000
# конкретная ветка → её последний ready
layero promote --branch=staging
# rollback: вернуть apex на предыдущий production-деплой
layero promote --rollback
# CI: без подтверждения
layero promote --yes
Что происходит
- CLI находит deploy (по
--deploy, по последнему ready в--branch, или по последнему ready в default-ветке). - Показывает план:
promote plan:from: 1743a29 2026-05-08 20:30 v2.4.1 — bugfix releaseto: ce70191 2026-05-19 07:09 feature: new pricing pageproceed? [y/N]
- После confirm бэкенд:
- Атомарно обновляет
projects.production_deploy_id(CTE захватывает старое значение вprevious_production_deploy_id— для rollback'а). - Записывает
promote_events(audit log: кто, когда, source='cli', prev → new). - Инвалидирует resolver-кеш через Postgres NOTIFY.
- Атомарно обновляет
- Через 30–60 сек CDN edge подтягивает новый артефакт. Старые edge-кеши обновляются по TTL.
One-click rollback
layero promote --rollback
Делает атомарный swap production_deploy_id ↔ previous_production_deploy_id. Стабильный: вызвали два раза подряд — вернулись в исходную точку (ping-pong). Удобно когда хочется быстро откатиться, попробовать, и при необходимости вернуться обратно.
Rollback не требует ввода commit SHA — оба деплоя уже зафиксированы платформой при предыдущем promote'е.
Если previous_production_deploy_id пуст (на проекте ещё ни одного promote не было) — CLI вернёт ошибку: откатываться некуда, надо хотя бы один promote сделать сначала.
--promote как флаг layero deploy
Если хочется одной командой: build → promote, не дожидаясь ready'я в UI:
layero deploy --branch=hot-fix --promote --yes
Билд завершится, CLI автоматом перейдёт в promote и подтвердит. Эквивалентно layero deploy ... && layero promote --deploy=<last>, но без второй ручной команды.
Ограничения
- Promote можно сделать только на
ready-деплой сs3_path(или зарегистрированным runtime-контейнером). - Для runtime-проектов (SSR Next, Streamlit, Gradio, Flask) promote переключает указатель моментально, но running-инстанс старого билда продолжает отвечать пока его не дёрнут (cold-start триггернёт следующий запрос на новом артефакте).
- Если auto-promote default-ветки включён, любой следующий push в default перетрёт ваш ручной promote. Выключите auto-promote в Settings проекта если хотите оставить ручной контроль за production.
Альтернативы
- В дашборде на странице деплоя — кнопка «Promote to production».
- На странице проекта в Production card — кнопка «Откатить» = эквивалент
--rollback. - История промоутов — Project → Deploys → «Promote history» (видно auto vs ui vs cli + кто).
Как это связано с rollback
Раньше layero rollback менял environments.active_deploy_id (per-ветка). Под V071 модель доменов одна-на-проект: rollback теперь — это «откати production apex на прошлый pinned-деплой», т.е. swap двух полей проекта. Команда layero rollback удалена; используйте layero promote --rollback.