Skip to content

Build watch paths

When you connect a git repository to Pages, by default a change to any file in the repository will trigger a Pages build. You can configure Pages to include or exclude specific paths to specify if Pages should skip a build for a given path. This can be especially helpful if you are using a monorepo project structure and want to limit the amount of builds being kicked off.

Configure paths

To configure which paths are included and excluded, go to your Pages project > Settings > Builds & deployments > Build watch paths. Pages will default to setting your project’s includes paths to everything ([*]) and excludes paths to nothing ([]).

The configuration fields can be filled in two ways:

  • Static filepaths: Enter the precise name of the file you are looking to include or exclude (for example, docs/README.md).
  • Wildcard syntax: Use wildcards to match multiple path directories. You can specify wildcards at the start or end of your rule.

For each path in a push event, build watch paths will be evaluated as follows:

  • Paths satisfying excludes conditions are ignored first
  • Any remaining paths are checked against includes conditions
  • If any matching path is found, a build is triggered. Otherwise the build is skipped

Pages will bypass the path matching for a push event and default to building the project if:

  • A push event contains 0 file changes, in case a user pushes a empty push event to trigger a build
  • A push event contains 3000+ file changes or 20+ commits

Examples

Example 1

If you want to trigger a build from all changes within a set of directories, such as all changes in the folders project-a/ and packages/

  • Include paths: project-a/*, packages/*
  • Exclude paths: “

Example 2

If you want to trigger a build for any changes, but want to exclude changes to a certain directory, such as all changes in a docs/ directory

  • Include paths: *
  • Exclude paths: docs/*

Example 3

If you want to trigger a build for a specific file or specific filetype, for example all files ending in .md.

  • Include paths: *.md
  • Exclude paths: “