РазвертываниеДеплой из GitHub

Развёртывание из GitHub

Подключите репозиторий GitHub, и Lizard (lizard.build) будет собирать и переразвёртывать ваше приложение при каждом push в отслеживаемую ветку: git push to deploy. Выполните lizard add -r owner/repo, чтобы создать сервис; для приватного репозитория сначала подключите Lizard GitHub App командой lizard git connect. Это рекомендуемый способ запуска приложения, код которого хранится в GitHub. Для кода без удалённого репозитория используйте развёртывание из локального кода.

Создание сервиса из репозитория

lizard add -r your-org/your-app

Команда создаёт github-сервис и запускает первую сборку в фоне: Lizard клонирует репозиторий и определяет стек (lizardpack). URL команда не выводит. Следите за сборкой через lizard logs --build --service <name>; когда сервис заработает, lizard ps покажет URL. Полезные флаги:

ФлагНазначение
-r, --repo <owner/repo>Исходный репозиторий
-n, --name <name>Имя сервиса (используется в ссылках ${{name.KEY}} и на панели управления)
-v, --variables <K=V>Задать переменную окружения; можно повторять
--region <code>Регион для развёртывания
--no-deployПодключить репозиторий, но пропустить первую сборку

Приватные репозитории

Подключите приложение Lizard для GitHub один раз на аккаунт, чтобы получить доступ к приватным репозиториям:

lizard git connect
lizard git status        # show connection + repo status

Также можно подключить репозитории и управлять доступом на странице GitHub integration в панели управления (lizard open).

Подключение существующего сервиса к репозиторию

Чтобы переключить сервис на git-источник (или сменить репозиторий/ветку):

lizard service set api \
  --set sourceType=github \
  --set repoUrl=https://github.com/your-org/your-app \
  --set branch=main

Изменение поля сборки запускает пересборку работающего сервиса. redeploy после этого отменяет эту сборку и запускает новую. Сервису, который упал или ни разу не был развёрнут, нужен lizard redeploy.

Примечание: lizard up всегда принудительно включает sourceType=upload. Не используйте его для обновления git-сервиса — отправьте push в удалённый репозиторий или используйте lizard redeploy. В папке без привязанного сервиса up выбирает сервис с именем папки или из package.json, поэтому в клоне репозитория он может переключить ваш GitHub-сервис на загрузку.

Автоматическое переразвёртывание при push

После настройки repoUrl пуши в соответствующую branch автоматически переразвёртывают сервис через вебхук GitHub. Подключите приложение Lizard для GitHub (lizard git connect), чтобы Lizard получал push-события репозитория. Чтобы ограничить, какие пуши запускают переразвёртывание:

  • rootDirectory — собирать только подкаталог (монорепозитории).
  • watchPatterns — переразвёртывать только при изменении соответствующих путей.
lizard service set api --set watchPatterns='apps/api/**,packages/**'

Чтобы пуши не запускали деплой, выключите Auto-deploy в настройках сервиса в панели управления. Сервис на паузе тоже игнорирует пуши, пока вы его не возобновите.

Смена веток

lizard git checkout api staging      # move the `api` service to the `staging` branch and redeploy

Монорепозитории

Для репозитория с несколькими приложениями создайте отдельный сервис для каждого и укажите его rootDirectory как подпуть:

lizard add -r your-org/monorepo -n api --no-deploy
lizard service set api --set rootDirectory=apps/api
lizard redeploy --service api

Если текущая директория — под-приложение внутри репозитория, чей родитель уже подключен, добавьте сервис в проект родителя и укажите rootDirectory как подпуть от cwd.

См. также

Обновлено