Git リポジトリを Pages に接続すると、デフォルトではリポジトリ内のどのファイルが変わっても Pages のビルドが始まります。含めるパスと除外するパスを設定すると、指定したパスではビルドをスキップできます。モノレポ構成でビルド回数を抑えたい場合に特に役立ちます。
含めるパスと除外するパスを設定する手順は次のとおりです。
-
Cloudflare ダッシュボードで Workers & Pages を開きます。
Workers & Pages を開く ↗ -
Pages プロジェクトを探します。
-
Settings > Build > Build watch paths を開きます。デフォルトでは、含めるパスはすべて([*])、除外するパスはなし(
[])です。
設定欄には、次の 2 通りの書き方ができます。
- 静的なファイルパス: 含めたい、または除外したいファイルの正確な名前を入力します(例:
docs/README.md)。 - ワイルドカード構文: ワイルドカードで複数のパスをマッチします。ルールの先頭または末尾にワイルドカードを置けます。
プッシュイベント内の各パスに対して、ビルドウォッチパスは次の順で評価されます。
- 除外条件に当てはまるパスを先に無視します
- 残ったパスを、含める条件と照合します
- マッチするパスが 1 つでもあればビルドを開始します。なければビルドをスキップします
次の場合、Pages はパス照合を行わず、プロジェクトをビルドします。
- プッシュイベントのファイル変更が 0 件のとき(空のプッシュでビルドを起動する場合)
- プッシュイベントに 3000 件以上のファイル変更、または 20 件以上のコミットが含まれるとき
project-a/ と packages/ など、特定ディレクトリ内のファイルが変わったときだけビルドしたい場合です。* はパス区切りをまたいでマッチするため、project-a/src/index.js や packages/utils/lib/helpers.ts のような入れ子の変更も含みます。
- 含めるパス:
project-a/*, packages/* - 除外するパス: ``
どの変更でもビルドしたいが、docs/ ディレクトリ内の変更(docs/guides/setup.md のような入れ子パスを含む)は除外したい場合です。
- 含めるパス:
* - 除外するパス:
docs/*
特定のファイル、または特定のファイル種別だけでビルドしたい場合です。たとえば、リポジトリ内のすべての .md ファイルです。
- 含めるパス:
*.md - 除外するパス: ``
src/ の変更ではビルドし、src/tests/ の変更は無視したい場合です。
- 含めるパス:
src/* - 除外するパス:
src/tests/*