コンテンツにスキップ

モノレポ

一部のアプリは単一のリポジトリから構築されますが、Pagesはより複雑なセットアップを持つアプリもサポートしています。モノレポとは、複数のサブディレクトリを持ち、それぞれが独自のアプリケーションを含むリポジトリのことです。

セットアップ

同じリポジトリを使用して複数のプロジェクトを作成できます。他のPagesプロジェクトを作成するのと同じ方法で。ビルドコマンドやプロジェクトのルートディレクトリを変更するオプションがあり、Pagesにビルドコマンドを実行したい場所を指定できます。すべてのプロジェクト名は、同じリポジトリに接続されていても一意でなければなりません。

ビルド

GitリポジトリをPagesに接続すると、デフォルトではリポジトリ内の任意のファイルの変更がPagesビルドをトリガーします。

モノレポの例の図

上記のmy-monorepoを例にとると、2つの関連するPagesプロジェクト(marketing-appecommerce-app)とその依存関係がリストされています。デフォルトでは、marketing-appのプロジェクトディレクトリ内のファイルを変更すると、ecommerce-appプロジェクトのビルドもトリガーされます。これは、ecommerce-appとその依存関係が変更されていない場合でも同様です。このような重複ビルドを避けるために、ビルドウォッチパスブランチを含めたり除外したりして、Pagesが特定のプロジェクトのビルドをスキップするかどうかを指定できます。

Git統合

Gitリポジトリ内の各プロジェクトに対して別々のPagesプロジェクトを作成すると、各Gitプッシュはビルド構成で指定されていない限り、すべての接続されたプロジェクトに対して新しいビルドとデプロイを発行します。

GitHubは、ブランチに関連付けられたプルリクエストがある場合、更新されたプロジェクトとデプロイURLに対して各プロジェクトの別々のコメントを表示します。

GitHubチェックランとGitLabコミットステータス

リポジトリに関連付けられた複数のプロジェクトがある場合、GitHubチェックランまたはGitLabコミットステータスは、リポジトリ内で次のように表示されます。

GitHubチェックラン GitLabコミットステータス

ビルドが何らかの理由でスキップされた場合(例:CIスキップ、ビルドウォッチパス、またはブランチデプロイ制御)、チェックラン/コミットステータスは表示されません。

モノレポ管理ツール

Pagesはモノレポ内の依存関係管理のための専門的なツールを提供していませんが、リポジトリを管理するために追加のツールを持ち込むことを選択できます。シンプルなサブパッケージ管理には、npmpnpm、およびYarnのワークスペースを利用できます。また、依存関係やタスク実行を追加で管理するために、TurborepoNX、またはLernaなどのより強力なツールを使用することもできます。

制限事項

  • モノレポサポートを有効にするには、Build System V2以上を使用している必要があります。
  • リポジトリごとに最大5つのPagesプロジェクトを構成できます。この制限を引き上げる必要がある場合は、Cloudflareアカウントチームに連絡するか、制限引き上げリクエストフォームを使用してください。