INTEGRITY Документация

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

Некоторые приложения создаются на основе одного репозитория, но Pages также поддерживает приложения с более сложной структурой. Монорепозиторием называется репозиторий, содержащий несколько подкаталогов, каждый из которых содержит собственное приложение.

Настройка

Из одного репозитория можно создать несколько проектов, так же, как вы создали бы любой другой проект Pages. Вы можете изменить команду сборки и (или) корневой каталог проекта, чтобы указать Pages, где должна выполняться команда сборки. Все имена проектов должны быть уникальными, даже если они подключены к одному репозиторию.

Builds

При подключении git-репозитория к Pages изменение любого файла в репозитории по умолчанию запускает сборку Pages.

Схема примера монорепозитория

Возьмём, к примеру, my-monorepo выше с двумя связанными проектами Pages (marketing-app и ecommerce-app) и перечисленные зависимости. По умолчанию, если вы изменяете файл в каталоге проекта для marketing-app, затем сборка для ecommerce-app проект также будет запущен, хотя ecommerce-app и его зависимости не изменились. Чтобы избежать таких повторных сборок, можно указать включение и исключение пути отслеживания сборки или ветки чтобы указать, должен ли Pages пропускать сборку для данного проекта.

Интеграция с Git

После того как вы создадите отдельный проект Pages для каждого проекта в репозитории Git, каждый git push будет запускать новую сборку и развёртывание для всех подключённых проектов, если иное не указано в конфигурации сборки.

Если с веткой связан Pull Request, GitHub добавляет отдельный комментарий для каждого проекта с обновленным URL-адресом проекта и развертывания.

GitHub check runs и GitLab commit statuses

Если с вашим репозиторием связано несколько проектов, ваш GitHub check run или Gitlab commit status будет выглядеть в вашем репозитории следующим образом:

GitHub check runстатус коммита GitLab

Если сборка пропускается по любой причине (например, из-за CI Skip, путей отслеживания сборки или элементов управления развертыванием по веткам), статус проверки или коммита не появится.

Инструменты для управления монорепозиторием:

Pages не предоставляет специализированных инструментов для управления зависимостями в монорепозиториях, но вы можете подключить дополнительные инструменты для управления репозиторием. Для простого управления подпакетами можно использовать такие инструменты, как npm, pnpm, а также Yarn workspaces. Вы также можете использовать более мощные инструменты, такие как Turborepo, NX, или Lerna для дополнительного управления зависимостями и выполнением задач.

Ограничения