Orbit
Подключение репозитория GitLab
GitLab connects to Orbit through OAuth rather than an installed app: you authorise Kapsule once, Orbit lists the projects your GitLab account can reach, and it registers a webhook per repository so…
GitLab подключается к Orbit через OAuth, а не через установленное приложение: вы авторизуете Kapsule один раз, Orbit показывает проекты, к которым может получить доступ ваша учётная запись GitLab, и регистрирует webhook для каждого репозитория, так что каждый push запускает сборку. В этом руководстве рассмотрены подключение, выбор репозитория, гейтинг развёртываний по вашему pipeline GitLab и обычные причины, по которым репозиторий не отображается.
Перед началом
Orbit может видеть только те проекты GitLab, которые видит ваша учётная запись. Для проекта, принадлежащего группе, вам нужен как минимум доступ Developer, и вам нужны достаточные разрешения для создания webhook в репозитории. Если ваш экземпляр GitLab ограничивает исходящие webhook, это ограничение применяется и здесь.
Шаг 1: подключите GitLab
- В KPanel нажмите Orbit на левой боковой панели.
- Нажмите New project.
- Оставьте режим установленным на Import Git Repo.
- На шаге 1 нажмите Connect GitLab.
Вас отправляют на GitLab для авторизации приложения Kapsule Orbit. Одобрите запрошенные scopes, и GitLab вернёт вас в KPanel с загруженными репозиториями. Шаг 1 тогда показывает Just connected.
Если подключение не удаётся, KPanel показывает ошибку, которую вернул GitLab, а не универсальное сообщение. Прочитайте её перед повторной попыткой: отказ в scopes и истёкшая авторизация требуют разных исправлений.
Шаг 2: выберите репозиторий
Ваши доступные репозитории появляются в виде списка. Нажмите Select рядом с нужным. Частные репозитории имеют значок Private; Orbit развёртывает как открытые, так и частные репозитории.
Если репозиторий отсутствует
- Проверьте вашу роль в проекте. Доступ Reporter недостаточен; вам нужен как минимум Developer.
- Если проект принадлежит группе, убедитесь, что ваше членство в группе или в самом проекте, а не только в дочерней группе с ограниченной ролью.
- Нажмите Reconnect GitLab на шаге 1, чтобы перезапустить поток OAuth. Это обновляет токен и перечитывает список проектов.
Если панель показывает No repos accessible, разрешение OAuth прошло, но ничего не вернуло. Переподключитесь и убедитесь, что вы одобрили scopes репозитория, а не сокращённый набор.
Шаг 3: настройте ваш проект
| Поле | Что оно делает |
|---|---|
| Project Name | Отображаемое имя в KPanel, например my-app |
| Deploy URL | Поддомен под kaps.run, так что my-app становится my-app.kaps.run |
Нажмите Create project. Orbit клонирует репозиторий, поставит первую сборку в очередь и перенесёт вас на обзор проекта.
Slug Deploy URL фиксируется при создании и не может быть изменён позже. Чтобы опубликовать под другим адресом, вместо этого присоедините пользовательский домен. См. Adding a Custom Domain to Your Project.
Автоматические развёртывания
Orbit регистрирует webhook в вашем репозитории GitLab при создании проекта. После этого:
- Push в вашу ветку production ставит в очередь развёртывание production.
- Push в любую другую ветку создаёт изолированный превью на
branch-<branch-name>.kaps.run, если Branch previews включена в Settings под Runtime. См. Branch Preview Deployments in Orbit. - Удаление ветки приостанавливает её окружение превью, и хранилище освобождается примерно через день.
Вы не создаёте и не ведёте webhook вручную.
Ожидание вашего pipeline GitLab CI
Если вы запускаете тесты в GitLab CI, Orbit может задержать развёртывание до успешного прохождения pipeline.
- Откройте проект, затем Settings.
- Найдите CI required checks.
- Введите любое непустое значение и сохраните.
На GitLab само значение не сопоставляется с именами заданий: любое непустое значение сообщает Orbit ждать полного pipeline для успеха. Сбой pipeline автоматически отменяет развёртывание Orbit. Это применяется только к развёртываниям, запускаемым push в ветку production.
Вот где два поставщика отличаются. GitHub сопоставляет значение с названными заданиями Actions; GitLab рассматривает любое значение как "ждать весь pipeline". Если вы копируете параметры между проектом GitHub и проектом GitLab, не ожидайте, что одно и то же поле будет вести себя идентично.
Переподключение или отключение GitLab
- Нажмите Orbit, затем New project.
- На шаге 1 нажмите Reconnect, чтобы перезапустить поток OAuth, или Disconnect, чтобы удалить связь.
Reconnect, это правильный первый шаг всякий раз, когда списание репозиториев прекращает работать: токены OAuth истекают, и переподключение выпускает новый.
Отключение сохраняет ваши проекты и их историю развёртывания, и живое развёртывание продолжает обслуживать трафик. Что прекращается, это push-триггерное развёртывание. Deploy hooks также перестают работать, потому что hook должен прочитать головку ветки через подключение поставщика, чтобы узнать, что строить.
Дополнительная информация
- Deploying Your Project для полного цикла развёртывания, блокировок развёртывания и одобрений
- Troubleshooting Failed Builds если первая сборка не удаётся
- Connecting a GitHub Repo и Connecting a Bitbucket Repo для других поставщиков