一部のアプリは単一のリポジトリから構築しますが、Pages はより複雑な構成のアプリにも対応しています。モノレポとは、複数のサブディレクトリがあり、それぞれに独自のアプリケーションが入っているリポジトリです。
同じリポジトリを使って、通常の Pages プロジェクトと同じ手順 で複数のプロジェクトを作成できます。ビルドコマンドやルートディレクトリを変えて、Pages にビルドコマンドを実行する場所を指定できます。同じリポジトリに接続していても、プロジェクト名はすべて一意である必要があります。
Git リポジトリを Pages に接続すると、デフォルトではリポジトリ内のどのファイルを変更しても Pages のビルドが起動します。
上記の my-monorepo を例にします。2 つの Pages プロジェクト(marketing-app と ecommerce-app)と、それぞれの依存関係があります。デフォルトでは、marketing-app のプロジェクトディレクトリ内のファイルを変更すると、ecommerce-app とその依存関係は変わっていなくても、ecommerce-app プロジェクトのビルドも起動します。こうした重複ビルドを避けるには、ビルドウォッチパス や ブランチ の含める/除外する設定で、Pages がそのプロジェクトのビルドをスキップするかどうかを指定できます。
Git リポジトリ内の各プロジェクトに対して別々の Pages プロジェクトを作成すると、ビルド設定で指定しない限り、Git のプッシュごとに接続されているすべてのプロジェクトで新しいビルドとデプロイが実行されます。
ブランチに Pull Request がある場合、GitHub は各プロジェクトごとに、更新されたプロジェクトとデプロイ URL を含む別々のコメントを表示します。
リポジトリに複数のプロジェクトが関連付けられている場合、GitHub のチェックラン ↗ または GitLab のコミットステータス ↗ は、リポジトリ上で次のように表示されます。

何らかの理由(CI Skip、ビルドウォッチパス、ブランチデプロイ制御など)でビルドがスキップされた場合、チェックラン/コミットステータスは表示されません。
Pages はモノレポの依存関係管理向けの専用ツールは提供していませんが、リポジトリ管理を助ける追加ツールを導入できます。シンプルなサブパッケージ管理には、npm ↗、pnpm ↗、Yarn ↗ のワークスペースを使えます。依存関係とタスク実行も管理したい場合は、Turborepo ↗、NX ↗、Lerna ↗ などのより強力なツールも使えます。
- モノレポのサポートを有効にするには、Build System V2 以降を使う必要があります。
- 1 つのリポジトリあたり設定できる Pages プロジェクトは最大 5 件です。この上限を引き上げる必要がある場合は、Cloudflare のアカウントチームに問い合わせるか、Limit Increase Request Form ↗ を使ってください。