Orbit
Развертывание вашего проекта
Once a repository is connected, Orbit deploys on every push to your production branch: it clones the commit, installs dependencies, runs your build, packages the output and starts serving it. This…
Как только репозиторий подключен, Orbit развертывает приложение при каждом push в вашу ветку production: он клонирует коммит, устанавливает зависимости, запускает сборку, упаковывает результат и начинает его обслуживать. В этом руководстве описан полный цикл развертывания, способы запуска развертывания вручную и элементы управления, которые определяют, когда развертывание может перейти в режим live.
Как работают автоматические развертывания
Каждый push в ветку, установленную как Production branch в Settings, затем Git, запускает развертывание. Orbit затем:
- Получает событие push от GitHub, GitLab или Bitbucket.
- Ставит развертывание в очередь и назначает ему слот сборки.
- Клонирует ваш репозиторий в точности этого коммита.
- Восстанавливает ваш кэшированный
node_modules, если кэш сборки доступен в вашем плане. - Запускает вашу команду установки (
npm ci,yarn installилиpnpm install, определяется из вашего файла блокировки). - Запускает вашу команду сборки.
- Упаковывает выходной каталог в артефакт развертывания и загружает его.
- Переключает среду на обслуживание нового артефакта.
На странице деталей развертывания эти этапы показаны как именованные Build phases: Clone, Cache restore, Install, Cache save, Build, Upload, Done. Большинство проектов завершаются за одну-три минуты.

Статусы развертывания
| Статус | Значение |
|---|---|
| Queued | Ожидание слота сборки. На странице развертывания показана ваша позиция в очереди |
| Awaiting approval | Удерживается, потому что Require approval for production включено. Кто-то должен его одобрить |
| Building | Установка зависимостей и запуск вашей команды сборки |
| Deploying | Сборка завершена, новый артефакт развертывается перед трафиком |
| Succeeded (shown as Live) | Обслуживает трафик. Развертывание имеет значок CURRENT |
| Failed | Этап сборки или развертывания вызвал ошибку. Откройте журнал, чтобы узнать, где |
| Cancelled | Остановлено до завершения вами или новым push в ту же ветку |
| Rolled back | Заменено откатом к более ранней сборке |
Просмотр сборки в процессе
В Overview проекта отображается текущая сборка с журналом потоковой передачи в реальном времени на панели Latest build. Нажмите Full details, чтобы открыть страницу деталей развертывания, на которой добавлена полоса прогресса сборки, предполагаемое оставшееся время, позиция в очереди и временная шкала сборки, разбитая по этапам.
Если ваш план позволяет более одной одновременной сборки и они все заняты, страница сообщает вам об этом четко: показывает, сколько ваших слотов одновременной сборки используется, и автоматически запускает развертывание при освобождении одного. Вы можете увидеть все сборки, которые выполняются по всем вашим проектам в Orbit, затем Queue.
Запуск развертывания вручную
Есть четыре способа развернуть приложение без push нового коммита.
Переразвернуть последний коммит
- Откройте проект.
- Откройте вкладку Deployments.
- Нажмите на развертывание, которое вы хотите, чтобы открыть его страницу деталей.
- Нажмите Retry build. Используйте More retry options, затем Retry with cleared cache, если вы подозреваете устаревшую кэшированную зависимость.
Deploy Now
Кнопка Deploy now на вкладке Deployments ставит в очередь свежую сборку текущей head-версии вашей ветки production.
Запланировать развертывание
Развертывание можно запланировать на будущее время. Orbit снимает снимок коммита в момент его планирования, поэтому сборка, которая будет выполнена позже, это код, который вы одобрили, а не то, что поступило в промежутке.
Deploy Hooks
Deploy hook - это секретный URL, который ставит сборку в очередь, когда что-то отправляет ей POST-запрос. Используйте их для перестроения из headless CMS, cron работы или CI конвейера. Установите их на вкладке Hooks проекта. См. Запуск развертываний через Deploy Hooks.
Параметры сборки
Orbit определяет разумные значения по умолчанию для большинства проектов. Переопределите любой из них в Settings, затем Build settings:
| Поле | Заполнитель, если пусто | Примеры |
|---|---|---|
| Install command | npm ci (auto-detected) | npm ci, yarn install --frozen-lockfile, pnpm install |
| Build command | npm run build (auto-detected) | npm run build, next build, vite build, astro build |
| Output directory | dist (auto-detected) | dist, .next, out, build, .output |
| Root directory | / (monorepo subdirectory) | apps/web |
| Node.js version | Platform default | 18, 20, 22 |
Оставьте поле пустым, чтобы сохранить автоматически определяемое значение. Полные сведения, включая значения для каждой платформы и ошибки, приводящие к сбою при первом развертывании, см. в Настройка команды сборки и выходного каталога.
Установка Root directory делает больше, чем просто изменение рабочего каталога. Push, которые изменяют только файлы за пределами этого пути, автоматически пропускаются, поэтому monorepo не перестраивается на каждый коммит.
Определение момента, когда развертывание разрешено
Orbit имеет несколько независимых механизмов контроля. Все они находятся в Settings.
Deploy Locks
Используйте блокировку, чтобы заморозить production во время инцидента, периода обслуживания или замораживания кода.
- Откройте проект.
- Нажмите Lock deploys.
- Добавьте причину (необязательно).
Во время блокировки push-триггерные развертывания молча пропускаются, и баннер отображает Production deploys are locked с вашей причиной. Ручные развертывания все еще работают, это сделано специально: блокировка предотвращает случайные развертывания, а не исправление, которое вы пытаетесь развернуть. Нажмите Unlock deploys, чтобы его снять.
Требуется одобрение для Production
Включите Require approval for production в Deploy protection. Push-триггерные развертывания production затем приостанавливаются на Awaiting approval, пока кто-то не откроет развертывание и не нажмет Approve или Reject. Развертывания panel и deploy hooks не затрагиваются.
Требуется сначала успех Staging
Require staging success before production удерживает push-триггерное развертывание production до тех пор, пока среда staging не развернет тот же коммит успешно. Кто-то все еще может одобрить вручную, чтобы пропустить ожидание.
Обязательные проверки CI
Ограничьте развертывания вашим собственным CI в CI required checks. На GitHub введите имена Actions заданий, разделенные запятыми, и все они должны пройти. На GitLab любое непустое значение ожидает всего конвейера. Отказ CI автоматически отменяет развертывание Orbit.
График замораживания развертываний
Deploy freeze schedule блокирует push-триггерные развертывания за пределами одобренных окон: блокировка выходных дней, разрешенный диапазон часов или оба. Все времена указаны в UTC. Ручные развертывания и deploy hooks не затрагиваются.
Все механизмы контроля выше, кроме графика замораживания развертываний, блокируют только push-триггерные развертывания. Deploy hooks и ручные развертывания panel проходят прямо через. Если URL hook протечет, ни один из этих параметров не помешает ему поставить сборку в очередь. Относитесь к URL hook как к учетным данным.
Пропуск сборок, которые вам не нужны
- Ignored paths: шаблоны glob, разделенные запятыми. Если каждый файл в push совпадает, сборка пропускается.
*.md,docs/**останавливает коммиты документации от запуска развертываний. - Branch ignore patterns: push из совпадающих веток полностью пропускаются.
dependabot/*,renovate/*это обычный случай. - Git tag deploys: развернуть в production при push совпадающего тега, используя glob, например
v*.
Build Cache
Orbit кэширует node_modules между сборками в планах Liftoff и Apex. Когда используется кэшированная установка, развертывание показывает значок Cache hit и этап установки значительно короче. Холодная сборка отображает Cold build вместо этого.
Чтобы принудительно переустановить, откройте Settings, затем Clear build cache, и подтвердите. Следующее развертывание для каждой среды запускает полную установку с нуля.
Если сборка не работает так, как вы не можете объяснить, и код в порядке локально, повторите попытку с очищенным кэшем, прежде чем начинать что-либо менять. Устаревшее дерево кэшированных зависимостей является частой и очень запутанной причиной.
Когда развертывание идет не так
Orbit может перехватить плохое развертывание вместо того, чтобы оставить его live:
- Auto-rollback on failure автоматически восстанавливает последнее здоровое развертывание, если развертывание production не удается.
- Health check получает путь, который вы выбираете, после каждого развертывания production. Ответ, отличный от 2xx в течение 15 секунд, восстанавливает предыдущее здоровое развертывание.
- Smoke tests запускают GET-запросы против до 10 путей после каждого успешного развертывания и записывают успех или неудачу. В сочетании с auto-rollback, неудачный smoke test откатывает развертывание.
Чтобы отменить развертывание самостоятельно, см. Откат развертывания. Чтобы разобраться, почему сборка не удалась, см. Устранение неполадок при неудачной сборке.