A GitHub Action that conditionally runs workflow steps and jobs based on changed files in PRs, feature branches, or pushes.
Paths Changes Filter is a GitHub Action that conditionally executes workflow steps or jobs based on which files have been modified in a pull request, feature branch, or push. It solves the problem of running slow tasks like integration tests or deployments only for changed components, saving time and resources, especially in monorepo setups where GitHub's built-in path filters are insufficient.
Developers and DevOps engineers managing CI/CD pipelines on GitHub, particularly those working with monorepos or complex projects where selective testing and deployment are needed.
It provides granular control over workflow execution beyond GitHub's native path filters, supports multiple Git workflows, and integrates seamlessly with existing actions to optimize CI/CD efficiency and reduce costs.
Conditionally run actions based on files modified by PR, feature branch or pushed commits
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Allows defining filters with picomatch glob patterns and file change types (added/modified/deleted), enabling precise control over workflow steps. Evidence from README's filter syntax and advanced options examples.
Supports pull requests, feature branches, merge queues, and long-lived branches with tailored detection methods. Evidence from the 'Supported workflows' section detailing different event configurations.
Outputs matching files as CSV, JSON, or shell-escaped lists via the list-files option, facilitating downstream processing. Evidence from parameter descriptions and custom processing examples.
Integrates with matrix jobs to run only for changed folders using the changes JSON output, reducing resource waste in monorepos. Evidence from examples showing matrix job configuration.
Exclusively designed for GitHub Actions, making it unusable for teams on other CI/CD platforms like GitLab or Jenkins, limiting portability.
Requires careful setup of base, ref, and filter parameters across different Git events, which can be error-prone and steep to learn. Evidence from detailed usage notes and multiple scenario examples.
Major releases, such as v4's update to Node 24, introduce breaking changes that necessitate workflow adjustments, as noted in the 'What's New' section.